记事本1.0



?
?
?
?
package cn325;import javax.swing.*;import javax.swing.filechooser.FileNameExtensionFilter;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class NotePad extends JFrame implements ActionListener {/** * * @param args */private JMenuBar jmb;private JMenu menu1, menu2, menu3, menu4, menu5;private JMenuItem jmi1, jmi2, jmi3, jmi4, jmi5, jmi6, jmi7;private JToolBar jtb;private JToolBar jtb1;private JLabel jl;private JButton bu1, bu2, bu3, bu4, bu5;private JTextArea jta;private JScrollPane jsp;// 构造函数 用来初始化public NotePad() {// 初始化jmb = new JMenuBar();// 菜单栏menu1 = new JMenu("文件F");// 各个菜单 //设置助记符menu1.setMnemonic('F');menu2 = new JMenu("编辑E");menu3 = new JMenu("格式O");menu4 = new JMenu("查看V");menu5 = new JMenu("帮助H");// 菜单项jmi1 = new JMenuItem("新建 (N) Ctrl+N",new ImageIcon("image\\打开.jpg"));jmi1.addActionListener(this);// 添加监听jmi1.setActionCommand("新建");// 设置监听的命令jmi2 = new JMenuItem("打开 (O) Ctrl+O",new ImageIcon("image\\打开.jpg"));jmi2.addActionListener(this);jmi2.setActionCommand("打开");jmi3 = new JMenuItem("保存 (S) Ctro+S",new ImageIcon("image\\打开.jpg"));jmi3.addActionListener(this);jmi3.setActionCommand("保存");jmi4 = new JMenuItem("另存为(A) ",new ImageIcon("image\\打开.jpg"));jmi4.addActionListener(this);jmi4.setActionCommand("另存为");jmi5 = new JMenuItem("页面设置 ");jmi6 = new JMenuItem("打印 (P) Ctrl+P");jmi7 = new JMenuItem("退出 (X) ");jmi7.addActionListener(this);jmi7.setActionCommand("退出");// 工具栏jtb = new JToolBar();jl = new JLabel(new ImageIcon("image/JPanel.jpg"));jtb1 = new JToolBar();jtb1.add(jl);// 不可移动jtb.setFloatable(false);jtb1.setFloatable(false);// 按钮bu1 = new JButton("打开");bu1.setToolTipText("用来打开文件");bu1.addActionListener(this);bu1.setActionCommand("打开");bu2 = new JButton("保存");bu2.setToolTipText("保存到当前文件中");bu3 = new JButton("剪切"); bu3.setToolTipText("剪切选中到剪切板");bu4 = new JButton("复制"); bu4.setToolTipText("复制选中到剪切板");bu5 = new JButton("粘贴");bu5.setToolTipText("粘贴剪切板中的内容到当前文件");// 多行文本输入框jta = new JTextArea();// 滚动条jsp = new JScrollPane(jta);// 菜单栏添加菜单项jmb.add(menu1);jmb.add(menu2);jmb.add(menu3);jmb.add(menu4);jmb.add(menu5);// 将菜单项添加到菜单menu1.add(jmi1);menu1.add(jmi2);menu1.add(jmi3);menu1.add(jmi4);menu1.addSeparator();menu1.add(jmi5);menu1.add(jmi5);menu1.addSeparator();menu1.add(jmi6);menu1.add(jmi7);// 工具栏添加按钮jtb.add(bu1);jtb.add(bu2);jtb.add(bu3);jtb.add(bu4);this.setJMenuBar(jmb);this.add(jtb, BorderLayout.NORTH);this.add(jsp, BorderLayout.CENTER);this.add(jtb1, BorderLayout.SOUTH);// 设置基本属性this.setTitle("我 的 记 事 本 ");//设置名字this.setSize(600, 500);//设置大小this.setLocationRelativeTo(null);//设置出现位置 居中this.setCursor(Cursor.getPredefinedCursor(HAND_CURSOR));//设置当鼠标移动到此处时为手型this.setIconImage(new ImageIcon("image\\张杰.jpg").getImage());this.setDefaultCloseOperation(3);this.setVisible(true);}public static void main(String[] args) {NotePad nb = new NotePad();}@Overridepublic void actionPerformed(ActionEvent e) {// 判断 if(e.getActionCommand().equals("新建")){ jta.setText(null); } else if (e.getActionCommand().equals("打开")) {// 文件选择窗体JFileChooser fc1 = new JFileChooser();// 设置名字 此举要在显示对话框设置为默认属性前 fc1.setDialogTitle("打开文件");//创建文件选择器对象 FileNameExtensionFilter filter=new FileNameExtensionFilter("文本文件(*.txt)", "txt"); //添加文件过滤器 fc1.setFileFilter(filter);// 显示出来fc1.setVisible(true);//定义一个返回的值int returnVal=fc1.showOpenDialog(null);//如果选中了文件 就进行下一步if( returnVal==JFileChooser.APPROVE_OPTION ){// 获得选中的文件的全路径String filepath = fc1.getSelectedFile().getAbsolutePath();// 创建字符输出流对象FileReader fr = null;BufferedReader br = null;try {// 初始化输出流对象fr = new FileReader(filepath);br = new BufferedReader(fr);String s = "";String allCon = null;while ((s = br.readLine()) != null) {allCon += s + "\r\n";}jta.setText(allCon);} catch (Exception e1) {e1.printStackTrace();} finally {try {br.close();fr.close();} catch (IOException e1) {e1.printStackTrace();}}}} else if (e.getActionCommand().equals("另存为")) {// 创建一个文件选择窗体JFileChooser fc2 = new JFileChooser();// 设置显示的对话框的名字fc2.setDialogTitle("另存为");//创建文件选择器对象 FileNameExtensionFilter filter=new FileNameExtensionFilter(null, ".txt"); //添加文件过滤器 fc2.setFileFilter(filter);// 设置可见fc2.setVisible(true);//定义一个返回的值int returnVal=fc2.showSaveDialog(null);//如果选中了文件 就进行下一步if(returnVal==JFileChooser.APPROVE_OPTION){//取得选中文件的绝对路径String filepath = fc2.getSelectedFile().getAbsolutePath();// 创建字符流输出对象FileWriter fw = null;BufferedWriter bw = null;try {fw = new FileWriter(filepath);bw = new BufferedWriter(fw);bw.write(jta.getText());} catch (IOException e1) {e1.printStackTrace();} finally { try {bw.close();fw.close();} catch (IOException e1) {e1.printStackTrace();}}}} else if(e.getActionCommand().equals("退出")){System.exit(0);}}}?
?
代码可能有点烂,还没有将一些组件重写,进行简单封装,只是将基本的组件写到同一个类中。