notepad.java
来自「我用java做的记事本,不要太好啊!」· Java 代码 · 共 602 行 · 第 1/2 页
JAVA
602 行
edit.add(copy); edit.add(paste); edit.addSeparator(); edit.add(statistic); edit.addSeparator(); edit.add(selectAll); edit.add(timeanddate); bar.add(edit); form = new JMenu("格式(O)"); form.setMnemonic('O'); line = new JCheckBoxMenuItem("自动换行",true); line.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { text.setLineWrap(line.isSelected()); } }); form.add(line); editable = new JCheckBoxMenuItem("缩定文本",true); editable.setSelected(false); editable.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { text.setEditable(!editable.isSelected()); } }); form.add(editable); fontChoose = new JMenuItem("字体"); fontChoose.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { FontFrame fontframe = new FontFrame(font); fontframe.show(); text.setFont(font); } }); form.add(fontChoose); bar.add(form); help = new JMenu("帮助(H)"); helponline = new JMenuItem("帮助主题"); about = new JMenuItem("关于记事本"); about.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null," 我的记事本"); } }); help.add(helponline); help.addSeparator(); help.add(about); help.setMnemonic('H'); bar.add(help); this.setJMenuBar(bar); text = new JTextArea(); JScrollPane pane = new JScrollPane(text); text.setLineWrap(true); getContentPane().add(pane); cutC = new JMenuItem("剪切"); cutC.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { text.cut(); } }); cutC.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK)); copyC = new JMenuItem("复制"); copyC.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { text.copy(); } }); copyC.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK)); pasteC = new JMenuItem("粘贴"); pasteC.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { text.paste(); } }); pasteC.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK)); selectAllC = new JMenuItem("全选"); selectAllC.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { text.selectAll(); } }); selectAllC.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK)); popup = new JPopupMenu(); popup.add(cutC); popup.add(copyC); popup.add(pasteC); popup.addSeparator(); popup.add(selectAllC); text.addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent event) { if(event.isPopupTrigger()) popup.show(event.getComponent(),event.getX(),event.getY()); } }); }}//---------------------------------------------------------------------------------//字体选择窗口class FontFrame extends JFrame{ // variant private Font font; private JLabel labelFont; private JLabel labelShape; private JLabel labelSize; private JTextField fFont; private JTextField fShape; private JTextField fSize; private JList listFont; private JList listShape; private JList listSize; private JButton ok; private JButton cancel; private JTextField sample; public FontFrame(Font f) { this.font = f; setTitle("字体"); setSize(500,350); font = null; //----------------------------------------------------------------------- //Add Component //Set Grid Bag Layout getContentPane().setLayout(new GridBagLayout()); GridBagConstraints con = new GridBagConstraints(); con.fill = GridBagConstraints.NONE; con.anchor = GridBagConstraints.CENTER; con.weightx= 0; con.weighty = 0; labelFont = new JLabel("字体"); add(labelFont,con,0,0,1,1); labelShape = new JLabel("字形"); add(labelShape,con,1,0,1,1); labelSize = new JLabel("大小"); add(labelSize,con,2,0,1,1); fFont = new JTextField("Arial",14); fFont.setEditable(false); add(fFont,con,0,1,1,1); fShape = new JTextField("常规",7); fShape.setEditable(false); add(fShape,con,1,1,1,1); fSize = new JTextField("14",5); fSize.setEditable(false); add(fSize,con,2,1,1,1); ok = new JButton("确定"); ok.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //System.exit(0); } }); add(ok,con,3,1,1,1); //------------------------------------------------------------- String[] fontString = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); listFont = new JList(fontString); listFont.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); listFont.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { fFont.setText(((String)listFont.getSelectedValue()).trim()); showExample(); } }); JScrollPane fontScrollPane = new JScrollPane(listFont); add(fontScrollPane,con,0,2,1,1); String[] shapeString ={ "常规","斜体","粗体","粗斜体"}; shapeString[0]+=" "; //增加宽度 listShape = new JList(shapeString); listShape.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); listShape.setToolTipText("选择字形"); listShape.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { fShape.setText(((String)listShape.getSelectedValue()).trim()); showExample(); } }); JScrollPane shapeScrollPane = new JScrollPane(listShape); add(shapeScrollPane,con,1,2,1,1); String[] sizeString = new String[30]; for(int i=0;i<sizeString.length;i++) sizeString[i]=""+(i+1); sizeString[0]+=" "; listSize = new JList(sizeString); listSize.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); listSize.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { fSize.setText(((String)listSize.getSelectedValue()).trim()); showExample(); } }); JScrollPane sizeScrollPane = new JScrollPane(listSize); add(sizeScrollPane,con,2,2,1,1); con.anchor = GridBagConstraints.NORTH; cancel = new JButton("取消"); cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //font = null; //System.exit(0); } }); add(cancel,con,3,2,1,1); //------------------------------------------------------------- JPanel demoPanel = new JPanel(); Border border = BorderFactory.createTitledBorder("示例文本"); demoPanel.setBorder(border); sample = new JTextField("ABC",14); sample.setEditable(true); demoPanel.add(sample); con.anchor = GridBagConstraints.CENTER; add(demoPanel,con,1,3,2,1); } //Overload Funtion Add() To Add Component public void add(Component c,GridBagConstraints con,int x,int y,int w,int h) { con.gridx = x; con.gridy = y; con.gridwidth = w; con.gridheight = h; getContentPane().add(c,con); } public void showExample() { String name = fFont.getText(); int style; if(fShape.getText().equals("常规")) style = Font.PLAIN; if(fShape.getText().equals("斜体")) style = Font.ITALIC; if(fShape.getText().equals("粗体")) style = Font.BOLD; if(fShape.getText().equals("粗斜体")) style = style = Font.BOLD + Font.ITALIC; else style = 0; int size = Integer.parseInt(fSize.getText()); font = new Font(name,style,size); sample.setFont(font); } }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?