黑马程序员-做一个像文本档一样的小软件
来源:互联网 发布:董云飞老师网络公开课 编辑:程序博客网 时间:2024/04/20 11:48
------- android培训、java培训、期待与您交流! ----------
//做一个像文本文档一样的小程序
//需求,做一个像文本文档一样的程序 功能只有打开,保存以及退出三个功能
public class GUIMenu {
/**
* 步骤:
* 1.设置一个frame窗体
* 2.在frame中加入菜单栏,在菜单栏里加入菜单和子菜单
* 3.通过流的方式,保存和打开文件
* @param args
*/
private Frame frame;
private TextArea ta;
private MenuBar fileBar;
private Menu fileMenu;
private MenuItem openItem;
private MenuItem savaItem;
private MenuItem exitItem;
private FileDialog openDia;
private File file;
public GUIMenu(){
//1.对frame进行基本的设置
frame = new Frame("文本文档");
frame.setBounds(300, 100, 650, 600);
//注,因为窗体中除了菜单栏全是文本区域,所以采用边界布局 frame默认的便是边界布局
//2.对菜单项及子菜单进行进本设置
fileMenu = new Menu("文件");
openItem = new MenuItem("打开");
savaItem = new MenuItem("保存");
exitItem = new MenuItem("退出");
openDia = new FileDialog(frame,"打开",FileDialog.LOAD);
//3.菜单里添加子菜单
fileMenu.add(openItem);
fileMenu.add(savaItem);
fileMenu.add(exitItem);
//菜单栏里添加菜单
fileBar = new MenuBar();
fileBar.add(fileMenu);
//4.创建文本区域
ta = new TextArea(); //不对其基本设置,默认
//5.往窗体中添加菜单栏和文本域
frame.setMenuBar(fileBar);
frame.add(ta);
myEvent();
frame.setVisible(true);
}
//对窗体中的组件添加监听
private void myEvent(){
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
//对打开的条目添加监听器
openItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent d){
openDia.setVisible(true);
String fileDir=openDia.getDirectory();
//获取文件名称
String fileName=openDia.getFile();
if(fileDir==null||fileName==null)//必须在这对获取的文件名称及文件名进行判断
//否则在file对象中会出现空指针异常
return ;
ta.setText(null);//对文本区域的内容进行清空
file = new File(fileDir,fileName);
try {
BufferedReader bis = new BufferedReader(
new FileReader(file));
String line=null;
while((line=bis.readLine())!=null){
ta.append(line+"\r\n");//要加入回车符
}
bis.close();//对流进行关闭,释放资源
} catch (Exception e) {
// TODO: handle exception
}
}
});
savaItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(file==null){//这里的判断,如果文件为空,则说明是新写的文件,不是在原有的基础上添加的,所以从新获取目的
FileDialog savaDia = new FileDialog(frame,"保存",FileDialog.SAVE);
savaDia.setVisible(true);
String fileDir=openDia.getDirectory();
//获取文件名称
String fileName=openDia.getFile();
if(fileDir==null||fileName==null)//必须在这对获取的文件名称及文件名进行判断
//否则在file对象中会出现空指针异常
return ;
file = new File(fileDir,fileName);
}
try {
BufferedWriter bufw = new BufferedWriter(
new FileWriter(file));
String mes = ta.getText();
bufw.write(mes);
bufw.flush();
bufw.close();
} catch (Exception e2) {
// TODO: handle exception
}
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new GUIMenu();
}
}
- 黑马程序员-做一个像文本档一样的小软件
- 黑马程序员-利用GUI 做一个像我的电脑一样的索引
- 做一个像狼一样的男人
- 像硬件一样做软件
- 适合做程序员的人:像机器一样思考
- 像拍电影一样做软件-管理流程
- 像拍电影一样做软件-组合管理
- 像拍电影一样做软件-分析设计
- 像拍电影一样做软件-需求开发、可控的开发节奏、时间约束策略的好处
- 像拍电影一样做软件-资源管理的规划、预算不协调的根本原因
- 富文本编辑器中如何让一个Div变成像输入框一样可输入的?
- 要做一个像163一样的邮件系统,谁有这方面的资料
- 做一个像向日葵一样的项目经理——激励你的团队
- 用WPF做一个像QQ登陆界面一样的窗体
- 想做一个像深度Ghost一样的系统(Ghost系统制作)
- 像优秀的SQL程序员一样思考
- 像程序员一样思考
- 像程序员一样思考
- ssh限制登录
- Linux进程的实际用户ID和有效用户ID
- C语言连接MySql数据库(CodeBlocks)
- maven 配置篇 之pom.xml(一)
- Azkaban源码阅读之CachingFlowManager
- 黑马程序员-做一个像文本档一样的小软件
- maven 配置篇 之pom.xml(二)
- "在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke"
- 随想-提高班ING
- ios中数据存储的四种方式
- 1000
- ubuntu修改interfaces for network
- vim快捷键高级用法
- broadcast