本帖最后由 陈雪琪 于 2013-6-8 21:29 编辑
- import java.awt.*;
- import java.awt.event.*;
- import java.io.*;
- class MyMenuDemo
- {
- private Frame f;
- private MenuBar bar;
- private Menu menu,newFile;
- private MenuItem openItem,saveItem,closeItem,newF1,newF2;
- private TextArea ta;
- private FileDialog openDia,saveDia;
- private File file;
- MyMenuDemo(){
- init();
- }
- public void init(){
- f=new Frame("我的记事本");
- f.setBounds(300,200,600,600);
- bar=new MenuBar();
- menu=new Menu("文件");
- newFile =new Menu("新建");
- openItem=new MenuItem("打开");
- saveItem=new MenuItem("保存");
- closeItem=new MenuItem("退出");
- newF1=new MenuItem("标准文本");
- newF2=new MenuItem("网页");
- ta=new TextArea();
- openDia=new FileDialog(f,"打开文件",FileDialog.LOAD);
- saveDia=new FileDialog(f,"保存",FileDialog.SAVE);
- f.setMenuBar(bar);
- bar.add(menu);
- menu.add(newFile);
- menu.add(openItem);
- menu.add(saveItem);
- menu.add(closeItem);
- newFile.add(newF1);
- newFile.add(newF2);
- f.add(ta);
- myEvent();
- f.setVisible(true);
- }
- public void myEvent(){
- //记事本退出
- f.addWindowListener(new WindowAdapter(){
- public void windowClosing(WindowEvent e){
- System.exit(0);
- }
- });
- //菜单栏中将记事本退出
- closeItem.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- System.exit(0);
- }
- });
- //打开文件的操作
- openItem.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- try{
- openDia.setVisible(true);
- String dir=openDia.getDirectory();
- String fileName=openDia.getFile();
- if(dir==null || fileName==null)
- return ;
- file=new File(dir,fileName);
- BufferedReader br=new BufferedReader(new FileReader(file));
- String s=null;
- ta.setText("");
- while((s=br.readLine())!=null){
- ta.append(s+"\r\n");
- }
- br.close();
- }
- catch(IOException ioe){
- throw new RuntimeException("出错啦!");
- }
- }
- });
- //保存文件
- saveItem.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent ae){
- if(file==null){
- saveDia.setVisible(true);
- String dir=saveDia.getDirectory();
- String fileName=saveDia.getFile();
- System.out.println(dir+"........."+fileName);
- if(dir==null||fileName==null)
- return ;
- file=new File(dir,fileName);
- System.out.println(file.exists());
- }
- else{
- try{
- BufferedWriter bw=new BufferedWriter(new FileWriter(file));
- String text=ta.getText();
- bw.write(text);
- bw.close();
- }
- catch(IOException i){
- throw new RuntimeException();
- }
- }
- }
- });
- }
- public static void main(String[] args)
- {
- new MyMenuDemo();
- }
- }
复制代码 问题是在当文件为空需要保存文件的时候。代码第82行开始,就是保存文件那块出了问题。为了能运行,我就把所有代码都复制过来了。
在控制台输出结果的代码是为了验证,路径和文件名是否为空的。每次保存后打印在控制台上显示都不为空。但是文件就是没办法被创建。
还对比了老毕的代码中这部分的内容,感觉是一样的。可是用毕老师的代码加进来运行就能保存成功,我这段代码却始终有问题。不知道是不是眼拙没看到哪除了问题。看了好久依旧没看出什么毛病- -
|