需求:
用所学的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+"\r\n");
}
}
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:\JAVA\Test>javac -d f:\java\test MyMenu.java,
2,创建归档文件,后缀名不限
3,将mymenu压缩到jar包
4,用winrar打开jar包可发现已经写入了归档
5,双击运行jar包
运行效果:能够对文件进行打开,编辑,保存,退出等基本功能