用图形界面处理文件,简单模拟记事本的文件打开与保存
2015-06-16 09:04
435 查看
/*
* 用图形界面处理文件,简单模拟记事本。
*/
package awt_mani_file;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class AwtFileUse {
public static void main(String[] args) {
new MyNotePad();
}
}
class MyNotePad{
private Frame frame;
//窗体
private MenuBar menubar;
//菜单栏、菜单、打开、保存、关闭菜单项
private Menu filemenu;
private MenuItem open;
private MenuItem save;
private MenuItem close;
private File file;
//用于打开或关闭文件时关联文件
private FileDialog fileopen, filesave;
//打开,保存对话框
private TextArea textarea;
//文本域,用于打开文件
//构造函数
public MyNotePad(){
init();
}
//初始化函数
public void init(){
frame = new Frame("MyNotePad");
//生成窗体
//设置窗体属性
frame.setBounds(350, 50, 650, 600);
menubar = new MenuBar();
//菜单栏,菜单,菜单项
filemenu = new Menu("file");
open = new MenuItem("open");
save = new MenuItem("save");
close = new MenuItem("close");
fileopen = new FileDialog(frame, "fileopen");
//文件对话框
filesave = new FileDialog(frame, "filesave", FileDialog.SAVE);
fileopen.setSize(50, 100);
//设置文件选择对话框属性
textarea = new TextArea();
//文本域,用于打开文件
//将组件添加到窗体
frame.setMenuBar(menubar);
menubar.add(filemenu);
filemenu.add(open);
filemenu.add(save);
filemenu.add(close);
//将文本域添加到窗体,默认是边界布局的center
frame.add(textarea);
myEvent();
//为窗体及其组件添加监听器
frame.setVisible(true);
}
//为窗体及其组建添加监听器
private void myEvent(){
//窗口监听器,用匿名内部类实现
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
//file-->open为open菜单项添加事件监听器
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ace){
fileopen.setVisible(true);
//设置文件选择对话框可见
//获取用户所选取的文件的路径、文件名
String dir = fileopen.getDirectory();
String filename = fileopen.getFile();
//空文件则不执行
if(dir == null || filename == null)
return ;
//建立文件对象,将文件中的内容读入到MyNotePad中的TextArea
file = new File(dir, filename);
//如果文件不存在则程序不执行
if(!file.exists())
return ;
textarea.setText(null);
//文本域的清空
try {
BufferedReader bufr = new BufferedReader(new FileReader(file));
//读取文件
String text = null;
try {
while((text = bufr.readLine()) != null){
textarea.append(text + "\r\n");
}
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("读取文件失败");
e.printStackTrace();
} finally {
try {
if(bufr != null)
bufr.close();
} catch (IOException ioe) {
// TODO Auto-generated catch block
ioe.printStackTrace();
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("文件打开失败");
e.printStackTrace();
}
}
});
//file-->save为save菜单项添加事件监听器
save.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent aces){
//如果文件已经存在则可以直接保存,否则打开存储文件对话框选择文件进行保存
if(file == null){
filesave.setVisible(true);
//获取用户所选取的文件的路径、文件名
String dir = filesave.getDirectory();
String filename = filesave.getFile();
System.out.println(dir);
System.out.println(filename);
//空文件则不执行
if(dir == null || filename == null)
return ;
file = new File(dir, filename);
System.out.println(file);
}
//进行文件保存
try {
BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
bufw.write(textarea.getText());
bufw.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("文件保存失败");
e.printStackTrace();
}
}
});
}
}
* 用图形界面处理文件,简单模拟记事本。
*/
package awt_mani_file;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class AwtFileUse {
public static void main(String[] args) {
new MyNotePad();
}
}
class MyNotePad{
private Frame frame;
//窗体
private MenuBar menubar;
//菜单栏、菜单、打开、保存、关闭菜单项
private Menu filemenu;
private MenuItem open;
private MenuItem save;
private MenuItem close;
private File file;
//用于打开或关闭文件时关联文件
private FileDialog fileopen, filesave;
//打开,保存对话框
private TextArea textarea;
//文本域,用于打开文件
//构造函数
public MyNotePad(){
init();
}
//初始化函数
public void init(){
frame = new Frame("MyNotePad");
//生成窗体
//设置窗体属性
frame.setBounds(350, 50, 650, 600);
menubar = new MenuBar();
//菜单栏,菜单,菜单项
filemenu = new Menu("file");
open = new MenuItem("open");
save = new MenuItem("save");
close = new MenuItem("close");
fileopen = new FileDialog(frame, "fileopen");
//文件对话框
filesave = new FileDialog(frame, "filesave", FileDialog.SAVE);
fileopen.setSize(50, 100);
//设置文件选择对话框属性
textarea = new TextArea();
//文本域,用于打开文件
//将组件添加到窗体
frame.setMenuBar(menubar);
menubar.add(filemenu);
filemenu.add(open);
filemenu.add(save);
filemenu.add(close);
//将文本域添加到窗体,默认是边界布局的center
frame.add(textarea);
myEvent();
//为窗体及其组件添加监听器
frame.setVisible(true);
}
//为窗体及其组建添加监听器
private void myEvent(){
//窗口监听器,用匿名内部类实现
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
//file-->open为open菜单项添加事件监听器
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ace){
fileopen.setVisible(true);
//设置文件选择对话框可见
//获取用户所选取的文件的路径、文件名
String dir = fileopen.getDirectory();
String filename = fileopen.getFile();
//空文件则不执行
if(dir == null || filename == null)
return ;
//建立文件对象,将文件中的内容读入到MyNotePad中的TextArea
file = new File(dir, filename);
//如果文件不存在则程序不执行
if(!file.exists())
return ;
textarea.setText(null);
//文本域的清空
try {
BufferedReader bufr = new BufferedReader(new FileReader(file));
//读取文件
String text = null;
try {
while((text = bufr.readLine()) != null){
textarea.append(text + "\r\n");
}
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("读取文件失败");
e.printStackTrace();
} finally {
try {
if(bufr != null)
bufr.close();
} catch (IOException ioe) {
// TODO Auto-generated catch block
ioe.printStackTrace();
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("文件打开失败");
e.printStackTrace();
}
}
});
//file-->save为save菜单项添加事件监听器
save.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent aces){
//如果文件已经存在则可以直接保存,否则打开存储文件对话框选择文件进行保存
if(file == null){
filesave.setVisible(true);
//获取用户所选取的文件的路径、文件名
String dir = filesave.getDirectory();
String filename = filesave.getFile();
System.out.println(dir);
System.out.println(filename);
//空文件则不执行
if(dir == null || filename == null)
return ;
file = new File(dir, filename);
System.out.println(file);
}
//进行文件保存
try {
BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
bufw.write(textarea.getText());
bufw.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("文件保存失败");
e.printStackTrace();
}
}
});
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统