【java编程】GUI之综合练习(二)

来源:互联网 发布:智能交通算法工程师 编辑:程序博客网 时间:2024/05/23 00:04

1.菜单的包含关系


下面是一个简单的示例:

需求:实现一个简单的记事本,功能包括:打开,保存,退出

import java.awt.*;import java.awt.event.*;import java.io.*;class MenuDemo {public static void main(String[] args) {new myMenu();}}class myMenu{private Frame f;private MenuBar bar;private Menu fileMenu;private MenuItem openMenuItem;private MenuItem saveMenuItem;private MenuItem exitMenuItem;private TextArea ta;private File file;private FileDialog openDia;private FileDialog saveDia;myMenu(){init();}public void init(){f=new Frame("My Frame");f.setBounds(500,400,600,500);bar=new MenuBar();fileMenu=new Menu("菜单");openMenuItem=new MenuItem("打开");saveMenuItem=new MenuItem("保存");exitMenuItem=new MenuItem("退出");fileMenu.add(openMenuItem);fileMenu.add(saveMenuItem);fileMenu.add(exitMenuItem);ta=new TextArea();bar.add(fileMenu);f.setMenuBar(bar);f.add(ta);myEvent();f.setVisible(true);}public void myEvent(){//窗体关闭事件f.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});//退出子条目事件exitMenuItem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});//为openDia子条目添加打开事件openMenuItem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){openDia=new FileDialog(f,"打开",FileDialog.LOAD);openDia.setVisible(true);String DirPath=openDia.getDirectory();String filename=openDia.getFile();if(DirPath==null || filename==null)return;file=new File(DirPath,filename);ta.setText("");try{BufferedReader bufr=new BufferedReader(new FileReader(file));String line=null;while((line=bufr.readLine())!=null){ta.append(line+"\r\n");}}catch (IOException ex){throw new RuntimeException("关闭流失败");}}});//为saveDia子条目添加事件saveMenuItem.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){if(file==null){saveDia=new FileDialog(f,"保存",FileDialog.SAVE);saveDia.setVisible(true);String DirPath=saveDia.getDirectory();String filename=saveDia.getFile();if(DirPath==null || filename==null)return;File file=new File(DirPath,filename);}try{BufferedWriter bufw=new BufferedWriter(new FileWriter(file));String text=ta.getText();bufw.write(text);bufw.close();}catch (IOException ex){throw new RuntimeException("关闭流失败");}}});}}



0 0
原创粉丝点击