Java GUI之FileDialog实现记事本

public class FileDialogDemo implements ActionListener {
   private Frame f;
   private FileDialog fload;
   private FileDialog fsave;
   private TextArea t;
   private String file = "";

   public static void main(String[] args) {
      new FileDialogDemo().init();
   }

   public void init() {
      f = new Frame("My Notepad");
      MenuBar mb = new MenuBar();
      Menu file = new Menu("文件");
      Menu help = new Menu("帮助");
      MenuItem open = new MenuItem("打开");
      MenuItem save = new MenuItem("保存");
      MenuItem saveAs = new MenuItem("另存为");
      file.add(open);
      file.add(save);
      file.add(saveAs);
      mb.add(file);
      mb.add(help);
      f.setMenuBar(mb);
      t = new TextArea();
      f.add(t, "Center");
      open.addActionListener(this);
      save.addActionListener(this);
      saveAs.addActionListener(this);
      f.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent e) {
            System.exit(0);
         }
      });
      f.setSize(400, 200);
      f.setLocation(450, 200);
      f.setVisible(true);
      fload = new FileDialog(f, "打开文件", FileDialog.LOAD);
      fsave = new FileDialog(f, "保存文件", FileDialog.SAVE);
   }

   public void actionPerformed(ActionEvent e) {
      String s = e.getActionCommand();
      if (s.equals("打开")) {
         fload.setVisible(true);
         String d = fload.getDirectory();
         String f = fload.getFile();
         if ((d != null) && (f != null)) {
            file = d + f;
            loadFile();
         }
      } else if (s.equals("保存")) {
         if ((file == null) || file.equals("")) {
            this.saveFileAs();
         } else {
            this.saveFile();
         }
      } else if (s.equalsIgnoreCase("另存为")) {
         this.saveFileAs();
      }
   }

   public void loadFile() {
      t.setText("");
      t.setFont(new Font("隶书", Font.ITALIC, 20));
      t.setForeground(Color.red);
      f.setTitle("My Notepad-" + file);
      try {
         BufferedReader br = new BufferedReader(new FileReader(file));
         String s = br.readLine();
         while (s != null) {
            t.append(s + "\n");
            System.out.print(s + "\n");
            s = br.readLine();
         }
         br.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }

   public void saveFile() {
      String c = t.getText();
      try {
         PrintWriter pw = new PrintWriter(new FileWriter(file));
         pw.println(c);
         pw.close();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }

   public void saveFileAs() {
      fsave.setVisible(true);
      String d = fload.getDirectory();
      String fd = fload.getFile();
      if ((d != null) && (f != null)) {
         file = d + fd;
         this.saveFile();
         f.setTitle("My Notepad-" + file);
      }
   }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值