黑马程序员-----GUI中保存文件和打开文件
2014-10-21 17:40
197 查看
------Java培训、Android训、iOS培训、Net培训、期待与您交流!------
一、问题描述
创建一个简单的记事本,包括打开,保存,退出菜单并能实现其操作。
二、思路
1、创建Frame窗体,对窗体进行基本设置 比如:大小,位置,布局
(1)创建Frame窗体:Frame f
= new Frame("my window");
(2)对窗体设置大小:f.setBounds(x, y, width, height);
(3)设置窗体布局:f.setLayout(new FlowLayout());
2、先建立菜单栏,再建立“文件”菜单添加到菜单栏,并建立“打开”,”保存“,“退出”菜单项添加到菜单;
(1)创建菜单栏 MenuBar mb
= new MenuBar();
(2)创建菜单Menum = new Menu("文件");
(3)创建菜单项
MenuItem saveItem
= new MenuItem("保存");
MenuItemopenItem
= new MenuItem("打开");
MenuItemcloseItem
= new MenuItem("退出");
(4)将菜单项添加到菜单
m.add(openItem);
m.add(saveItem);
m.add(closeItem);
(5)将菜单添加到菜单栏
mb.add(m);
(6)将菜单栏添加到窗体
f.setMenuBar(mb);
3、设置动作监听事件,保存,打开,退出。
4、让窗体显示,通过setVisible(true)
三、具体代码实现
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyMenuTest
{
private Frame f;
p
ea92
rivate TextArea ta;
private MenuBar mb;
private Menu m;
private MenuItem closeItem, saveItem, openItem;
private FileDialog openDia, saveDia;
private File file;
MyMenuTest()
{
init();
}
public void init()
{f
= new Frame("my window"); // 建立一个窗口
f.setBounds(300,
100, 500, 600);// 设大小位置
mb
= new MenuBar();//创建菜单栏
ta
= new TextArea();//创建文本区域
m
= new Menu("文件");//创建菜单
saveItem
= new MenuItem("保存");//创建保存菜单项
openItem
= new MenuItem("打开");//创建打开菜单项
closeItem
= new MenuItem("退出");//创建退出菜单项
//将保存、打开、退出菜单项添加到菜单中
m.add(openItem);
m.add(saveItem);
m.add(closeItem);
mb.add(m);将菜单项添加到菜单栏
f.setMenuBar(mb);//将菜单栏添加到窗体
f.add(ta);//将文本区域添加到窗体
openDia
= new FileDialog(f, "我要打开", FileDialog.LOAD);// 此常量值指示文件对话框窗口的作用是查找要读取的文件。
saveDia
= new FileDialog(f, "我要打开", FileDialog.SAVE);//这里必须是文件对话框, 因为Dialog中没有获取目录和文件的方法,此常量值指示文件对话框窗口的作用是查找要写入的文件。
myEvent();//监听事件
f.setVisible(true);//设置窗体可见
}
private void myEvent()//封装所有窗体
{//保存事件监听
saveItem.addActionListener(new ActionListener() {
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 = ta.getText();//定义字符串,获取文本内容
bufw.write(text);//将内容写入到缓冲区
bufw.close();//关闭缓冲区
}
catch (IOException ex) //异常处理
{
throw new RuntimeException();
}}});
openItem.addActionListener(new ActionListener() {//打开事件监听
public void actionPerformed(ActionEvent e)
{ openDia.setVisible(true);
ta.setText("");//清空文本区域的内容
String dirPath = openDia.getDirectory();
String filename = openDia.getFile();
if (dirPath == null || filename == null) return;
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");//添加到文本区域
}
bufr.close();//关闭缓冲区
}
catch (IOException e1)
{
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 MyMenuTest();//创建一个MyMenuTest对象
}
}
四、总结
本体涉及内容
1、GUI中一些基本对象的创建,例如创建Frame窗体,菜单栏,菜单,菜单项,文本区域等对象。
2、设置对象的一些监听事件,例如窗体监听事件,菜单项中保存,退出,修改一些监听事件。
3、IO流中缓冲区:为了提高效率使用了BufferedReader、BufferedWriter
------Java培训、Android训、iOS培训、Net培训、期待与您交流!------
一、问题描述
创建一个简单的记事本,包括打开,保存,退出菜单并能实现其操作。
二、思路
1、创建Frame窗体,对窗体进行基本设置 比如:大小,位置,布局
(1)创建Frame窗体:Frame f
= new Frame("my window");
(2)对窗体设置大小:f.setBounds(x, y, width, height);
(3)设置窗体布局:f.setLayout(new FlowLayout());
2、先建立菜单栏,再建立“文件”菜单添加到菜单栏,并建立“打开”,”保存“,“退出”菜单项添加到菜单;
(1)创建菜单栏 MenuBar mb
= new MenuBar();
(2)创建菜单Menum = new Menu("文件");
(3)创建菜单项
MenuItem saveItem
= new MenuItem("保存");
MenuItemopenItem
= new MenuItem("打开");
MenuItemcloseItem
= new MenuItem("退出");
(4)将菜单项添加到菜单
m.add(openItem);
m.add(saveItem);
m.add(closeItem);
(5)将菜单添加到菜单栏
mb.add(m);
(6)将菜单栏添加到窗体
f.setMenuBar(mb);
3、设置动作监听事件,保存,打开,退出。
4、让窗体显示,通过setVisible(true)
三、具体代码实现
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyMenuTest
{
private Frame f;
p
ea92
rivate TextArea ta;
private MenuBar mb;
private Menu m;
private MenuItem closeItem, saveItem, openItem;
private FileDialog openDia, saveDia;
private File file;
MyMenuTest()
{
init();
}
public void init()
{f
= new Frame("my window"); // 建立一个窗口
f.setBounds(300,
100, 500, 600);// 设大小位置
mb
= new MenuBar();//创建菜单栏
ta
= new TextArea();//创建文本区域
m
= new Menu("文件");//创建菜单
saveItem
= new MenuItem("保存");//创建保存菜单项
openItem
= new MenuItem("打开");//创建打开菜单项
closeItem
= new MenuItem("退出");//创建退出菜单项
//将保存、打开、退出菜单项添加到菜单中
m.add(openItem);
m.add(saveItem);
m.add(closeItem);
mb.add(m);将菜单项添加到菜单栏
f.setMenuBar(mb);//将菜单栏添加到窗体
f.add(ta);//将文本区域添加到窗体
openDia
= new FileDialog(f, "我要打开", FileDialog.LOAD);// 此常量值指示文件对话框窗口的作用是查找要读取的文件。
saveDia
= new FileDialog(f, "我要打开", FileDialog.SAVE);//这里必须是文件对话框, 因为Dialog中没有获取目录和文件的方法,此常量值指示文件对话框窗口的作用是查找要写入的文件。
myEvent();//监听事件
f.setVisible(true);//设置窗体可见
}
private void myEvent()//封装所有窗体
{//保存事件监听
saveItem.addActionListener(new ActionListener() {
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 = ta.getText();//定义字符串,获取文本内容
bufw.write(text);//将内容写入到缓冲区
bufw.close();//关闭缓冲区
}
catch (IOException ex) //异常处理
{
throw new RuntimeException();
}}});
openItem.addActionListener(new ActionListener() {//打开事件监听
public void actionPerformed(ActionEvent e)
{ openDia.setVisible(true);
ta.setText("");//清空文本区域的内容
String dirPath = openDia.getDirectory();
String filename = openDia.getFile();
if (dirPath == null || filename == null) return;
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");//添加到文本区域
}
bufr.close();//关闭缓冲区
}
catch (IOException e1)
{
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 MyMenuTest();//创建一个MyMenuTest对象
}
}
四、总结
本体涉及内容
1、GUI中一些基本对象的创建,例如创建Frame窗体,菜单栏,菜单,菜单项,文本区域等对象。
2、设置对象的一些监听事件,例如窗体监听事件,菜单项中保存,退出,修改一些监听事件。
3、IO流中缓冲区:为了提高效率使用了BufferedReader、BufferedWriter
------Java培训、Android训、iOS培训、Net培训、期待与您交流!------
相关文章推荐
- 黑马程序员_GUI(布局,Frame,事件监听机制,对话框Dialog,菜单,打开和保存文件)
- 黑马程序员_GUI(布局,Frame,事件监听机制,对话框Dialog,菜单,打开和保存文件)
- matlab gui(三)对话框(文件打开/保存对话框,进度条)
- SAP ABAP 文件打开和保存时候,路径选择的弹出框 cl_gui_frontend_services
- Java-GUI(练习-打开文件)-(练习-保存文件)
- GUI——练习(打开保存文件)
- JAVA GUI(菜单-打开文件-保存文件)
- GUI(打开、保存文件)
- 12.JAVA之GUI编程打开与保存文件
- GUI(练习-打开和保存文件)
- JAVA之GUI编程打开与保存文件
- C#学习笔记(十六):使用打开保存文件对话框
- 贴一段用javascript打开和保存本地文件的源码
- 如何在早期版本的 Office 中打开并保存 Word 2007、Excel 2007 和 PowerPoint 2007 文件
- 打开文件,保存文件
- 如何保证在浏览器端打开文件(word格式),保存时仍能够进入原数据库!
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- 位图文件的打开和保存
- ASP.NET下载文件(弹出打开保存文件对话框)
- js打开,保存文件