功能:java圖形用戶界面開發,練習打開保存文件html
代碼以下:java
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.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; class MyMenuDemo { private Frame f;// 定義窗體 private MenuBar bar;// 定義菜單欄 private TextArea ta; private Menu fileMenu;// 定義"文件"和"子菜單"菜單 private MenuItem openItem, saveItem, closeItem;// 定義條目「退出」和「子條目」菜單項 private FileDialog openDia, saveDia;// 定義「打開、保存」對話框 private File file;//定義文件 MyMenuDemo() { init(); } /* 圖形用戶界面組件初始化 */ public void init() { f = new Frame("my window");// 建立窗體對象 f.setBounds(300, 100, 650, 600);// 設置窗體位置和大小 bar = new MenuBar();// 建立菜單欄 ta = new TextArea();// 建立文本域 fileMenu = new Menu("文件");// 建立「文件」菜單 openItem = new MenuItem("打開");// 建立「打開"菜單項 saveItem = new MenuItem("保存");// 建立「保存"菜單項 closeItem = new MenuItem("退出");// 建立「退出"菜單項 fileMenu.add(openItem);// 將「打開」菜單項添加到「文件」菜單上 fileMenu.add(saveItem);// 將「保存」菜單項添加到「文件」菜單上 fileMenu.add(closeItem);// 將「退出」菜單項添加到「文件」菜單上 bar.add(fileMenu);// 將文件添加到菜單欄上 f.setMenuBar(bar);// 將此窗體的菜單欄設置爲指定的菜單欄。 openDia = new FileDialog(f, "打開", FileDialog.LOAD); saveDia = new FileDialog(f, "保存", FileDialog.SAVE); f.add(ta);// 將文本域添加到窗體內 myEvent();// 加載事件處理 f.setVisible(true);// 設置窗體可見 } private void myEvent() { // 打開菜單項監聽 openItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { openDia.setVisible(true);//顯示打開文件對話框 String dirpath = openDia.getDirectory();//獲取打開文件路徑並保存到字符串中。 String fileName = openDia.getFile();//獲取打開文件名稱並保存到字符串中 if (dirpath == null || fileName == null)//判斷路徑和文件是否爲空 return; else ta.setText(null);//文件不爲空,清空原來文件內容。 file = new File(dirpath, fileName);//建立新的路徑和名稱 try { BufferedReader bufr = new BufferedReader(new FileReader(file));//嘗試從文件中讀東西 String line = null;//變量字符串初始化爲空 while ((line = bufr.readLine()) != null) { ta.append(line + "\r\n");//顯示每一行內容 } bufr.close();//關閉文件 } catch (FileNotFoundException e1) { // 拋出文件路徑找不到異常 e1.printStackTrace(); } catch (IOException e1) { // 拋出IO異常 e1.printStackTrace(); } } }); // 保存菜單項監聽 saveItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (file == null) { saveDia.setVisible(true);//顯示保存文件對話框 String dirpath = saveDia.getDirectory();//獲取保存文件路徑並保存到字符串中。 String fileName = saveDia.getFile();////獲取打保存文件名稱並保存到字符串中 if (dirpath == null || fileName == null)//判斷路徑和文件是否爲空 return;//空操做 else file=new File(dirpath,fileName);//文件不爲空,新建一個路徑和名稱 } try { BufferedWriter bufw = new BufferedWriter(new FileWriter(file)); String text = ta.getText();//獲取文本內容 bufw.write(text);//將獲取文本內容寫入到字符輸出流 bufw.close();//關閉文件 } catch (IOException e1) { //拋出IO異常 e1.printStackTrace(); } } }); // 退出菜單項監聽 closeItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); // 窗體關閉監聽 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String[] args) { new MyMenuDemo(); } }
程序截圖:編程
上篇:11.JAVA之GUI編程菜單 下篇:13.JAVA之GUI編程將程序打包jarapp