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 + -
显示快捷键?