记事本DEMO

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/StillOnMyWay/article/details/76652510

记事本DEMO

package mynotepad;

        import java.awt.*;
        import java.awt.event.*;
        import java.io.*;

        /**
        记事本DEMOM,打开,保存,编辑功能。    
        */
        public class FrameDemo3 {
            private Frame f;
            private MenuBar bar;
            private Menu fileMenu;
            private MenuItem open,save,exit;
            private TextArea ta;
            private FileDialog openDia,saveDia;
            private File file;

            FrameDemo3() {
                initi();
            }

            private void initi() {
                f = new Frame("高仿记事本");
                f.setBounds(200,100,650,600);
        //      f.setLayout(new FlowLayout());

                bar = new MenuBar();
                fileMenu = new Menu("文件");
                open = new MenuItem("打开");
                save = new MenuItem("保存");
                exit = new MenuItem("退出");

                ta = new TextArea();

                fileMenu.add(open);
                fileMenu.add(save);
                fileMenu.add(exit);
                bar.add(fileMenu);
                f.setMenuBar(bar);
                f.add(ta);

                myEvent();
                f.setVisible(true);
            }

            private void myEvent() {
                f.addWindowListener(new WindowAdapter() {
                    public void windowClosing (WindowEvent e) {
                        System.exit(0);
                    }
                });

                exit.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        System.exit(0);
                    }
                });

                open.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        openDialog();
                    }
                });

                save.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
                        // 如果是没有打开的文件,那么就弹出保存对话框。
                        if (file == null) {
                            saveDia = new FileDialog(f,"要保存咯", FileDialog.SAVE);
                            saveDia.setVisible(true);
                            String fileName = saveDia.getFile();
                            String filePath = saveDia.getDirectory();
                            if (fileName == null || filePath == null) {
                                return;
                            }
                            file = new File(filePath, fileName);
                        }

                        try {
                                BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
                                String text = ta.getText();
                                bufw.write(text);
                                // bufw.flush();
                                bufw.close();
                            } catch(IOException e2) {
                                    throw new RuntimeException("保存失败");
                            }
                    }
                });

                // control + o 快捷键打开,
                // f.addKeyListener(new KeyAdapter(){
                //  public void KeyPressed (KeyEvent e) {
                //      if (e.isControlDown() && e.getKeyCode() == KeyEvent.VK_ENTER) {
                //          System.out.println("yes!");
                //          openDialog();
                //      }
                //  }
                // });
            }



            private void openDialog () {
                openDia = new FileDialog(f,"要打开咯", FileDialog.LOAD);
                openDia.setVisible(true);
                String fileName = openDia.getFile();
                String filePath = openDia.getDirectory();

                if (fileName == null || filePath == null) {
                    return;
                }

                ta.setText("");
                file = new File(filePath, fileName);
                try {
                  BufferedReader bufr = new BufferedReader(new FileReader(file));
                    String line = null;
                    while ((line=bufr.readLine()) != null) {
                        ta.append(line + "\r\n");
                    }
                } catch (IOException e2) {
                        throw new RuntimeException("读取失败");
                }           

            }

            public static void main(String[] args) {
                new FrameDemo3();
            }
        }

猜你喜欢

转载自blog.csdn.net/StillOnMyWay/article/details/76652510