目前我只写了打开文件功能。但是保存功能我还没实现。真的是写不下去了。
保存功能在代码中央位置吧。我只写了一点点。
想不出法子。求大神给思路。。。。。。代码如下。
public class Demo3iFrame {
//创建记事本窗体。
JFrame frame =new JFrame("我的记本事");
//菜单条
JMenuBar menuBar =new JMenuBar();
//菜单
JMenu fileMenu =new JMenu("文件");
JMenu helpMenu =new JMenu("帮助");
//菜单项
JMenuItem openItem =new JMenuItem("打开");
JMenuItem saveItem =new JMenuItem("保存");
JMenuItem exitItem =new JMenuItem("退出");
//复选菜单
JMenu editMenu =new JMenu("编辑");
JMenu copyItem =new JMenu("复制");
JMenu searchItem =new JMenu("查找");
//文件对话框1.打开文件。2.保存文件。
FileDialog fileDialog1 =new FileDialog(frame,"请选择打开文件",FileDialog.LOAD);
FileDialog fileDialog2 =new FileDialog(frame,"请选择保存路径",FileDialog.SAVE);
//关于
JMenuItem aboutItem =new JMenuItem("关于");
//文本域。
JTextArea area =new JTextArea(40,30);
public void init(){
frame.setBounds(500,150,500,400);
//把菜单添加到菜单条上
menuBar.add(fileMenu);
menuBar.add(helpMenu);
//把菜单项添加到菜单上
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.add(exitItem);
helpMenu.add(aboutItem);
//给打开选项添加监听器
openItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
fileDialog1.setVisible(true);//显示出来
String fileName =fileDialog1.getFile();//获取打开的文件名
String path =fileDialog1.getDirectory();//获取打开的文件路径
System.out.println("文件路径:"+path);
System.out.println("文件名:"+fileName);
File file =new File(path+fileName);//获取文件名和路径
FileInputStream fileInputStream =new FileInputStream(file);
//读文件内容。
byte[] buf =new byte[1024];
int length =0;
//边读边写。
while((length= fileInputStream.read(buf))!=-1){
area.setText(new String(buf,0,length));
//把文件内容写到文本域。
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
});
//添加退出事件。点击退出程序即时退出。
exitItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
//给保存添加事件
saveItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
fileDialog2.setVisible(true);//显示出来
String fileName =fileDialog2.getFile();//获取文件名
String path =fileDialog2.getDirectory();//获取保存路径
File file =new File(path+fileName);//创建File对象。把文件名和路径传入
FileOutputStream out =new FileOutputStream(file);//把File对象传给输出流
byte[] buf2 =new byte[1024];
int length2 =0;
while((length2=????????)){
}
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
//复选菜单 菜单添加菜单。
fileMenu.add(editMenu);
editMenu.add(copyItem);
editMenu.add(searchItem);
frame.add(area);
frame.add(menuBar,BorderLayout.NORTH);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] arge){
Demo3iFrame d =new Demo3iFrame();
d.init();
}
}
|