android exittext记事本,GUI练习——记事本

简单的打开 保存文件 小记事本import java.awt.*;

import java.awt.event.*;

import java.io.*;

class MenuDemo

{

private Frame f;

//菜单组件 可添加菜单项及菜单组件

private Menu m,m1,m2;

//菜单栏

private MenuBar mb;

//菜单项

private MenuItem closeMenu,mi2,mi3,openItem,saveItem;

private FileDialog openDia,saveDia;

private TextArea ta;

File file = null;//文件对象

MenuDemo()

{

init();

}

public void init()

{

f = new Frame("菜单练习");

//窗体设置

f.setBounds(200,100,600,600);

//f.setLayout(new FlowLayout());//frame默认边界布局

mb = new MenuBar();

m = new Menu("文件");

m1 = new Menu("一级菜单");

m2 = new Menu("二级菜单");

closeMenu = new MenuItem("退出");

mi2 = new MenuItem("二级菜单项");

mi3 = new MenuItem("三级退出");

openItem = new MenuItem("打开");

saveItem = new MenuItem("保存");

saveItem.setShortcut(new MenuShortcut(KeyEvent.VK_S));//添加快捷命令

//打开 保存 对话框

openDia = new FileDialog(f,"打开",FileDialog.LOAD);

saveDia = new FileDialog(f,"保存",FileDialog.SAVE);

//文本框

ta = new TextArea();

//将菜单相关组件 添加到窗体

f.setMenuBar(mb);//窗体添加菜单栏setMenuBar()

mb.add(m);//MenuBar菜单栏中只能添加Menu不可以添加Menu的父类MenuItem

m.add(openItem);

m.add(saveItem);

//m.addSeparator();//添加分割线

m.add(m1);

m1.add(m2);

m1.add(mi2);

//m2.add(closeMenu);

m2.add(mi3);

m.add(closeMenu);

f.add(ta);

/*

代码添加顺序就是图形的顺序  一个菜单项只有一个图形显示 当第二次添加同一个菜单项的时候

之前添加此菜单项的语句被覆盖 或者说 失效

*/

myEvent();

f.setVisible(true);

}

public void myEvent()

{

//为窗体添加 监听器

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

//为菜单项 添加监听器

closeMenu.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e)

{

System.exit(0);

}

});

mi3.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e)

{

System.exit(0);

}

});

openItem.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e)

{

openDia.setVisible(true);

//打开文本文件 显示内容在文本框

String dirPath = openDia.getDirectory();

String fileName = openDia.getFile();

System.out.println(dirPath+"...."+fileName);

file = new File(dirPath,fileName);

if(dirPath==null||fileName==null)

return;

ta.setText("");

BufferedReader bfr = null;//局部变量必须赋初始值

try

{

bfr = new BufferedReader(new FileReader(file));

String line = null;

while ((line = bfr.readLine())!=null)

{

//System.out.println(line);

ta.append(line+"\r\n");//不要忘记添加换行符号

}

}

catch (IOException io)

{

throw new RuntimeException("读取失败!");

}

finally

{

try

{

if(bfr!=null)

bfr.close();

}

catch (IOException ec)

{

throw new RuntimeException("guan失败!");

}

}

}

});

//为保存按钮添加监听 通过监听事件 执行动作:保存文本 到文件

saveItem.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e)

{

if(file==null)

{

saveDia.setVisible(true);

String dirPath = saveDia.getDirectory();

String fileName = saveDia.getFile();

file = new File(dirPath,fileName);

}

BufferedWriter bfw = null;

try

{

bfw = new BufferedWriter(new FileWriter(file));

String text = ta.getText();//返回文本组件内的文本

bfw.write(text);

bfw.flush();

}

catch (IOException ec)

{

throw new RuntimeException();

}

finally

{

try

{

if(bfw!=null)

bfw.close();

}

catch (IOException ec)

{

throw new RuntimeException("guan失败!");

}

}

}

});

}

public static void main(String[] args)

{

new MenuDemo();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值