美文网首页
2021-09-23 GUI(练习-打开文件)

2021-09-23 GUI(练习-打开文件)

作者: Denholm | 来源:发表于2021-10-25 21:38 被阅读0次
    clipboard.png
    import java.awt.FileDialog;
    import java.awt.Frame;
    import java.awt.Menu;
    import java.awt.MenuBar;
    import java.awt.MenuItem;
    import java.awt.TextArea;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    
    public class MyMenuTest {
    
        private Frame f;
        private MenuBar menuBar;
        private Menu menu;
        private MenuItem closeItem, openItem, saveItem;
        private FileDialog openDialog, saveDialog;
        private TextArea textArea;
    
        public MyMenuTest() {
            init();
        }
    
        private void init() {
            f = new Frame("my window");
            f.setBounds(300, 100, 500, 650);
    
            textArea = new TextArea();
    
            openDialog = new FileDialog(f, "我要打开", FileDialog.LOAD);
            saveDialog = new FileDialog(f, "我要保存", FileDialog.SAVE);
    
            menuBar = new MenuBar();
            menu = new Menu("文件");
    
            openItem = new MenuItem("打开");
            saveItem = new MenuItem("保存");
            closeItem = new MenuItem("退出");
    
            menu.add(openItem);
            menu.add(saveItem);
            menu.add(closeItem);
    
            menuBar.add(menu);
    
            f.setMenuBar(menuBar);
    
            f.add(textArea);
    
            MyEvent();
    
            f.setVisible(true);
        }
    
        private void MyEvent() {
    
            openItem.addActionListener(e -> {
                openDialog.setVisible(true);
                String fileName = openDialog.getFile();
                String dirPath = openDialog.getDirectory();
                // System.out.println(dirPath + "..." + fileName);
    
                if (null == fileName || null == dirPath) {
                    return;
                }
    
                textArea.setText("");
                File file = new File(dirPath, fileName);
                try {
                    BufferedReader reader = new BufferedReader(new FileReader(file));
                    String line = null;
                    while ((line = reader.readLine()) != null) {
                        textArea.append(line + "\r\n");
                    }
                    reader.close();
    
    //                  BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
    //                  byte[] buf = new byte[1024];
    //                  int len;
    //                  while ((len = in.read(buf)) != -1) {
    //                      String s = new String(buf, 0, len);
    //                      textArea.append(s + "\r\n");
    //                  }
    //                  in.close();
                } catch (Exception e2) {
                    throw new RuntimeException("读取文件失败");
                }
            });
    
            closeItem.addActionListener(e -> System.exit(0));
    
            f.addWindowListener(new WindowAdapter() {
    
                @Override
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }
    
            });
        }
    
        public static void main(String[] args) {
            new MyMenuTest();
        }
        
    }
    

    相关文章

      网友评论

          本文标题:2021-09-23 GUI(练习-打开文件)

          本文链接:https://www.haomeiwen.com/subject/cxfagltx.html