//package mymenu;
//java记事本
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MenuLianXi {
//定义窗体
private Frame f;
//定义菜单栏
private MenuBar menubar;
//定义文本区
private TextArea textarea;
//定义菜单
private Menu file_menu;
//定义菜单项
private MenuItem close_Item,open_Item,save_Item;
//定义显示对话框
private FileDialog openDia,saveDia;
//定义一个文件,用来保存
private File file;
//定义构造函数
MenuLianXi() {
//在构造函数里添加init()方法。
init();
}
//定义设置UI的界面的方法。
public void init()
{
//设置窗体的基本信息
f=new Frame("我的记事本");
f.setBounds(300,100,650,600);
//f.setLayout(new FlowLayout());
//初始化菜单栏
menubar=new MenuBar();
//初始化文本区
textarea=new TextArea();
//初始化菜单
file_menu=new Menu("文件");
//初始化菜单项
open_Item=new MenuItem("打开");
close_Item=new MenuItem("退出");
save_Item=new MenuItem("保存");
//在菜单里添加菜单项或者子菜单
file_menu.add(open_Item);
file_menu.add(save_Item);
file_menu.add(close_Item);
//在菜单栏里添加菜单
menubar.add(file_menu);
//在窗体里添加菜单栏
f.setMenuBar(menubar);
//初始化对话框
openDia=new FileDialog(f,"我的打开",FileDialog.LOAD);
saveDia=new FileDialog(f,"我的保存",FileDialog.SAVE);
//在窗体中添加文本区
f.add(textarea);
//添加监听器
myEvent();
//设置窗体可见
f.setVisible(true);
}
////定义myEvent方法添加监听器
public void myEvent()
{
//为保存菜单项添加活动监听
save_Item.addActionListener(new ActionListener(){
//复写actionPerformed方法
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 bufw=new BufferedWriter(new FileWriter(file));
//定义字符串接收文本呢区的文本。
String text=textarea.getText();
//向文本里写入文本呢信息。
bufw.write(text);
//关闭写入流。
bufw.close();
}
catch(IOException e4)
{
throw new RuntimeException();
}
}
});
//为打开菜单项添加活动监听
open_Item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
openDia.setVisible(true);
//获取对话框里目录
String dirPath=openDia.getDirectory();
//获取对话框里文件名
String fileName=openDia.getFile();
//System.out.println(dirPath+"--"+fileName);
//避免发生空指针异常
if(dirPath==null||fileName==null)
return ;
//清空文本区
textarea.setText("");
//定义文件和文件目录对象
file=new File(dirPath,fileName);
try{
//调用BufferedReader读取流读取文件
BufferedReader bufr=new BufferedReader(new FileReader(file));
String line=null;
//获取bufr中的文本信息
while((line=bufr.readLine())!=null)
{
//将文本信息添加到文本区中。
textarea.append(line+"\r\n");
}
//关闭读取流。
bufr.close();
}
catch(IOException e1)
{
throw new RuntimeException("读取失败");
}
}
});
//为菜单项closeItem添加一个活动监听
close_Item.addActionListener(new ActionListener(){
@Override
//复写抽象方法actionPerformed,添加处理动作。
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
System.exit(0);
}
});
//窗体调用addWindowListener方法,传递一个接口类(监听适配器)WindowAdapter。
f.addWindowListener(new WindowAdapter(){
//复写windowClosing方法。
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String[] args) {
new MenuLianXi();
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。