package com.awt; 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; /** * AWT编程 * @author 黑马_王康 * */ public class MyMenuDemo { private Frame fr; private MenuBar bar; private Menu fileMenu,subM; private MenuItem closeItem,openItem,subItem,saveItem; private FileDialog openDia,saveDia; private TextArea ta; private File file; public MyMenuDemo() { init(); } public void init(){ fr = new Frame("my window"); fr.setBounds(300,100,650,600); //fr.setLayout(new FlowLayout()); bar = new MenuBar(); //菜单条 fileMenu = new Menu("文件"); //菜单 closeItem = new MenuItem("退出"); //菜单项 subItem = new MenuItem("子条目"); openItem = new MenuItem("打开"); saveItem = new MenuItem("保存"); subM = new Menu("子菜单"); ta = new TextArea(); subM.add(subItem); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.add(subM); fileMenu.add(closeItem); //菜单中添加菜单项 bar.add(fileMenu); //菜单条中添加菜单 fr.setMenuBar(bar); //frame中添加菜单条 openDia = new FileDialog(fr, "我要打开", FileDialog.LOAD); saveDia = new FileDialog(fr, "我要保存", FileDialog.SAVE); fr.add(ta); myEvent(); fr.setVisible(true); } private void myEvent(){ fr.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); } }); closeItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); saveItem.addActionListener(new ActionListener() { @Override 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 ; file = new File(dirPath, fileName); } try { BufferedWriter bfw = new BufferedWriter(new FileWriter(file)); String text = ta.getText(); bfw.write(text); //bfw.flush(); bfw.close(); } catch (IOException e1) { e1.printStackTrace(); } } }); openItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { openDia.setVisible(true); String dirPath = openDia.getDirectory(); String fileName = openDia.getFile(); if(dirPath==null || fileName==null) return; ta.setText(""); 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"); } } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e2) { e2.getMessage(); } } }); } /** * 测试类 * @param args */ public static void main(String[] args) { new MyMenuDemo(); } }
结果显示效果:
黑马程序员_王康 java AWT编程
最新推荐文章于 2012-02-29 14:30:44 发布