標籤:gui練習
簡單的開啟 儲存檔案 小記事本
import java.awt.*;import java.awt.event.*;import java.io.*;class MenuDemo {private Frame f;//菜單組件 可添加功能表項目及菜單組件private Menu m,m1,m2;//功能表列private MenuBar mb;//功能表項目private MenuItem closeMenu,mi2,mi3,openItem,saveItem;private FileDialog openDia,saveDia;private TextArea ta;File file = null;//檔案對象MenuDemo(){init();}public void init(){f = new Frame("菜單練習");//表單設定f.setBounds(200,100,600,600);//f.setLayout(new FlowLayout());//frame預設邊界布局mb = new MenuBar();m = new Menu("檔案");m1 = new Menu("一級菜單");m2 = new Menu("二級菜單");closeMenu = new MenuItem("退出");mi2 = new MenuItem("二級功能表項目");mi3 = new MenuItem("三級退出");openItem = new MenuItem("開啟");saveItem = new MenuItem("儲存");saveItem.setShortcut(new MenuShortcut(KeyEvent.VK_S));//添加快捷命令//開啟 儲存 對話方塊openDia = new FileDialog(f,"開啟",FileDialog.LOAD);saveDia = new FileDialog(f,"儲存",FileDialog.SAVE);//文字框ta = new TextArea();//將菜單相關組件 添加到表單f.setMenuBar(mb);//表單添加功能表列setMenuBar()mb.add(m);//MenuBar功能表列中只能添加Menu不可以添加Menu的父類MenuItemm.add(openItem);m.add(saveItem);//m.addSeparator();//添加分割線 m.add(m1);m1.add(m2);m1.add(mi2);//m2.add(closeMenu);m2.add(mi3);m.add(closeMenu);f.add(ta);/*代碼添加順序就是圖形的順序 一個功能表項目只有一個圖形顯示 當第二次添加同一個功能表項目的時候之前添加此功能表項目的語句被覆蓋 或者說 失效*/myEvent();f.setVisible(true);}public void myEvent(){//為表單添加 監聽器f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//為功能表項目 添加監聽器closeMenu.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});mi3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});openItem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){openDia.setVisible(true);//開啟文字檔 顯示內容在文字框String dirPath = openDia.getDirectory();String fileName = openDia.getFile();System.out.println(dirPath+"...."+fileName);file = new File(dirPath,fileName);if(dirPath==null||fileName==null)return;ta.setText("");BufferedReader bfr = null;//局部變數必須賦初始值try{bfr = new BufferedReader(new FileReader(file));String line = null;while ((line = bfr.readLine())!=null){//System.out.println(line);ta.append(line+"\r\n");//不要忘記添加分行符號號}}catch (IOException io){throw new RuntimeException("讀取失敗!");}finally{try{if(bfr!=null)bfr.close();}catch (IOException ec){throw new RuntimeException("guan失敗!");}}}});//為儲存按鈕添加監聽 通過監聽事件 執行動作:儲存文本 到檔案saveItem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){if(file==null){saveDia.setVisible(true);String dirPath = saveDia.getDirectory();String fileName = saveDia.getFile();file = new File(dirPath,fileName);}BufferedWriter bfw = null;try{bfw = new BufferedWriter(new FileWriter(file));String text = ta.getText();//返迴文本組件內的文本bfw.write(text);bfw.flush();}catch (IOException ec){throw new RuntimeException();}finally{try{if(bfw!=null)bfw.close();}catch (IOException ec){throw new RuntimeException("guan失敗!");}}}});}public static void main(String[] args) {new MenuDemo();}}
本文出自 “要麼拚命,要麼滾回去!” 部落格,請務必保留此出處http://jiangzuun2014.blog.51cto.com/8732469/1440430
GUI練習——記事本