需求:
用所学的java知识编写一个记事本,具备打开文件,保存文件,退出文件等基本功能
并打包成jar,能够双击运行
知识点:
1,需要用到窗体的基本知识Frame的配置,
2,菜单及其配置MenuBar,Menu,MenuItem
3,文本区域 TextArea
4,各组件对应的监听器,内部类
5,IO流
实现过程:package mymenu; //打包 import java.awt.*; import java.awt.event.*; import java.io.*; public class MyMenu { private Frame f; private MenuBar bar; private Menu m,subMenu,m_2; private MenuItem openItem,saveItem,closeItem,subItem; private FileDialog open,save; private TextArea ta; private File file; MyMenu(){ init(); } public void init()//窗体构建 { f = new Frame("My Window");//窗体 f.setBounds(300,200,600,400); bar = new MenuBar(); //菜单栏 m = new Menu("文件"); //菜单 m_2=new Menu("菜单2"); subMenu = new Menu("子菜单"); openItem = new MenuItem("打开"); saveItem = new MenuItem("保存"); closeItem = new MenuItem("退出");//条目 subItem = new MenuItem("子条目"); ta = new TextArea(20,80); subMenu.add(subItem); m.add(openItem); m.add(saveItem); m.add(subMenu);//在菜单中添加子菜单 m.add(closeItem); bar.add(m); //将菜单添加到菜单栏 bar.add(m_2); f.setMenuBar(bar); //菜单栏设置到窗体 f.add(ta);//添加文本框 open = new FileDialog(f,"打开文件",FileDialog.LOAD);//添加对话框,参见API文档Dialog构造方法 save = new FileDialog(f,"保存文件",FileDialog.SAVE); myEvent(); f.setVisible(true); } public void myEvent()//事件监听 { openItem.addActionListener(new ActionListener()//菜单条目监听:打开 { public void actionPerformed(ActionEvent e) { open.setVisible(true); String dirPath = open.getDirectory();//获取对话框目录;FileDialog类的方法 String fileName= open.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+" "); } } catch (IOException ie){ throw new RuntimeException("读取失败!"); } } }); saveItem.addActionListener(new ActionListener()//菜单条目监听:保存 { public void actionPerformed(ActionEvent e) { if(file==null) { save.setVisible(true); String dirPath = save.getDirectory(); String fileName= save.getFile(); if(dirPath==null || fileName==null) return; 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(); } } }); 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 MyMenu(); } }
1,编译操作:带包的java文件编译格式
F:JAVATest>javac -d f:java est MyMenu.java,
2,创建归档文件,后缀名不限
3,将mymenu压缩到jar包
4,用winrar打开jar包可发现已经写入了归档
5,双击运行jar包
运行效果:能够对文件进行打开,编辑,保存,退出等基本功能