Java记事本

来源:互联网 发布:张郃的死 知乎 编辑:程序博客网 时间:2024/06/05 11:37
利用Java的图形界面开发,以及输入输出流的使用,在此编写了一个Java记事本,仿照

Windows记事本的功能所编写。有意出售这个Java记事本的代码。下面我来具体介绍一下我这个记事本所实现的功能。
由于初学Java,有的部分处理的不是很好,但是,记事本的核心功能已经完成。有关文件操作的使用,文件的打开,新建,保存,另存为,退出等功能的实现。还有,有关文本的核心操作,如,撤销,剪切,复制,删除的操作。还有文本的高级功能的使用,如查找,查找下一个,替换,转到,全选,时间和日期。有关换行还有字体设置方面也已经完全实现。唯一一个没有实现的功能即为打印功能,此功能有待完善。如有兴趣请发邮件到:1346677696@qq.com。请表明来意,价格面议。
记事本相关功能截图


以下是我记事本的一部分代码:

/***这个代码块的主要功能是生成一个新的窗体,“转到”及记事本的某一行。*说白了就是Windows记事本中的“转到”功能**/import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.event.DocumentEvent;import javax.swing.event.DocumentListener;import javax.swing.text.BadLocationException;class GoTo {    static JDialog goToJDialog = null;    private static JLabel goTo_JLb = new JLabel("行号(L):");    static JTextField goTo_JTF = new JTextField("1");//单行文本框    static JButton goTo_JB1 = new JButton("转到");//两个按钮    static JButton goTo_JB2 = new JButton("取消");        public GoTo(JFrame jf){        goToJDialog = new JDialog(jf, "转到指定行", true);        goToJDialog.setLayout(null);        //添加标签        goTo_JLb.setFont(new Font("宋体", Font.PLAIN, 15));        goTo_JLb.setBounds(10, 20, 100, 30);        goToJDialog.add(goTo_JLb);        //添加单行文本框        goTo_JTF.setBounds(10, 55, 240, 30);        goToJDialog.add(goTo_JTF);        //添加按钮        goTo_JB1.setFont(new Font("宋体", Font.PLAIN, 13));        goTo_JB2.setFont(new Font("宋体", Font.PLAIN, 13));           goTo_JB1.setBounds(25, 100, 100, 30);        goTo_JB2.setBounds(145,100, 100, 30);        goTo_JB1.setEnabled(isCanGoTo());        goTo_JB1.addActionListener(new JB1());        goTo_JB2.addActionListener(new JB2());        goToJDialog.add(goTo_JB1);        goToJDialog.add(goTo_JB2);        goTo_JTF.getDocument().addDocumentListener(new DocumentListener() {                @Override                public void removeUpdate(DocumentEvent arg0) {                        //文本删除时响应                    goTo_JB1.setEnabled(isCanGoTo());                }                @Override                public void insertUpdate(DocumentEvent arg0) {                    // 文本插入时响应                    goTo_JB1.setEnabled(isCanGoTo());                }                @Override                public void changedUpdate(DocumentEvent arg0) {                    // 文本属性改变时响应                }        });        goToJDialog.setBounds(120, 120, 270, 180);//窗体大小        goToJDialog.setResizable(false);//禁止用户改变窗体大小        goToJDialog.setVisible(true);    }    /**       * 查看单行文本框中是否有字符       *        * @return true为可用       */      public boolean isCanGoTo(){          boolean b = true;          if (goTo_JTF.getText().equals(""))              b=false;          return b;      }      class JB1 implements ActionListener{        @Override        public void actionPerformed(ActionEvent e) {            // TODO 自动生成的方法存根            try {//把String类型转换成int类型                int LineCount = Integer.parseInt((String)goTo_JTF.getText());                if ((LineCount <= 0)||(LineCount>Jsb.jta.getLineCount())){                    JOptionPane.showMessageDialog(                            null,                            "行数超过了总行数",                            "记事本",                            JOptionPane.WARNING_MESSAGE);                }else{                    int position = Jsb.jta.getLineStartOffset(LineCount-1);                    Jsb.jta.setCaretPosition(position);                    goToJDialog.setVisible(false);                }            } catch (NumberFormatException e1) {                e1.printStackTrace();            } catch (BadLocationException e1) {                // TODO 自动生成的 catch 块                e1.printStackTrace();            }        }      }      class JB2 implements ActionListener{            @Override            public void actionPerformed(ActionEvent e) {                // TODO 自动生成的方法存根                goToJDialog.setVisible(false);            }          }}
0 0
原创粉丝点击