package gui.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.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class MyNotePad {
private Frame frame;
private MenuBar menubar;//菜单条
private Menu menu0,menu1,menu2,menu3;//主菜单menu
private MenuItem mitem0_1,mitem0_2,mitem0_3,mitem0_4,mitem0_5;
private Menu menu0_1_1;//子菜单menu
private MenuItem mitem1_1,mitem1_2,mitem1_3,mitem1_4;
private MenuItem mitem2_1,mitem2_2;
private MenuItem mitem3_1;
private TextArea ta;
private FileDialog open_dial;//打开对话框,这里定义了两个FileDialog对象,其实定义一个,修改其中的参数即可
private FileDialog save_dial;//保存对话框
private File file;
public MyNotePad(){
init();
}
public void init(){
frame=new Frame("这是我的记事本工具");
menubar=new MenuBar();
menu0=new Menu("文件");
menu1=new Menu("编辑");
menu2=new Menu("格式");
menu3=new Menu("查看");
menu0_1_1=new Menu("子菜单");
mitem0_1=new MenuItem("新建");
mitem0_2=new MenuItem("打开");
mitem0_3=new MenuItem("保存");
mitem0_4=new MenuItem("另存为");
mitem0_5=new MenuItem("退出");
menu0_1_1.add(mitem0_1);
menu0_1_1.add(mitem0_2);
menu0_1_1.add(mitem0_3);
menu0_1_1.add(mitem0_4);
menu0.add(menu0_1_1);
menu0.add(mitem0_5);
//-------------------------------------------------------------------
mitem1_1=new MenuItem("撤销");
mitem1_2=new MenuItem("复制");
mitem1_3=new MenuItem("剪切");
mitem1_4=new MenuItem("粘贴");
menu1.add(mitem1_1);
menu1.add(mitem1_2);
menu1.add(mitem1_3);
menu1.add(mitem1_4);
//-------------------------------------------------------------------
mitem2_1=new MenuItem("自动换行");
mitem2_2=new MenuItem("格式");
menu2.add(mitem2_1);
menu2.add(mitem2_2);
//-------------------------------------------------------------------
mitem3_1=new MenuItem("状态栏");
menu3.add(mitem3_1);
//-------------------------------------------------------------------
menubar.add(menu0);
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
open_dial=new FileDialog(frame,"打开文件-jack",FileDialog.LOAD);//第三个参数是打开对话框模式,不写的话,默认的就是这个
save_dial=new FileDialog(frame,"保存文件-jack",FileDialog.SAVE);
frame.setMenuBar(menubar);
ta=new TextArea();
frame.add(ta);
frame.setBounds(100,100,500,600);
event();
frame.setVisible(true);
}
public void event(){
//保存对话框事件
mitem0_3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
save_dial.setVisible(true);//使打开对话框可见
if(file==null){
String dirPath=save_dial.getDirectory();//获取文件路径
String fileName=save_dial.getFile();//获取文件名
file=new File(dirPath,fileName);
}else{
BufferedWriter bw=null;
try {
bw=new BufferedWriter(new FileWriter(file));
bw.write(ta.getText());//把数据写入文件中
bw.flush();
} catch (IOException e1) {
e1.printStackTrace();
}finally{
try {
if(null!=bw){
bw.close();
}
} catch (Exception e2) {
}
}
// System.out.println(path+",,,,,,,,,,,,"+ta.getText());
}
}
});
//打开对话框事件
mitem0_2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
open_dial.setVisible(true);//使打开对话框可见
String dirPath=open_dial.getDirectory();//获取文件路径
String fileName=open_dial.getFile();//获取文件名
file=new File(dirPath,fileName);
if(file.exists()&&file.isFile()){
ta.setText("");//清空
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
String str="";
while(null!=(str=br.readLine())){
ta.append(str+"\r\n");
}
} catch (IOException e1) {
e1.printStackTrace();
}finally{
try {
if(null!=br){
br.close();
}
} catch (Exception e2) {
}
}
}else{
return;
}
System.out.println(dirPath+",,,,,"+fileName);
}
});
//摁扭的关闭事件
mitem0_5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
//窗体的关闭事件
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String[] args) {
new MyNotePad();
}
}
黑马程序员——用AWT写的假记事本,实现退出,保存,打开等功能
最新推荐文章于 2020-06-23 07:35:41 发布