黑马程序员技术交流社区

标题: 早早的起来,做了一个简单文本编译器 嗨了皮 [打印本页]

作者: gzbbxu    时间: 2013-6-15 07:40
标题: 早早的起来,做了一个简单文本编译器 嗨了皮
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.io.BufferedReader;
  4. import java.io.BufferedWriter;
  5. import java.io.File;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileReader;
  8. import java.io.FileWriter;
  9. import java.io.IOException;

  10. public class Test8 {
  11.         private Frame f;
  12.         private MenuBar mb;
  13.         private Menu fileMenu;
  14.         private MenuItem openItem, saveItem, closeItem;
  15.         private FileDialog openDia, saveDia;
  16.         private TextArea ta;
  17.         private File file;

  18.         public Test8() {
  19.                 init();
  20.         }

  21.         public void init() {
  22.                 f = new Frame("my window");
  23.                 f.setBounds(300, 100, 500, 600);
  24.                 mb = new MenuBar();
  25.                 fileMenu = new Menu("文件");
  26.                 openItem = new MenuItem("打开");
  27.                 saveItem = new MenuItem("保存");
  28.                 closeItem = new MenuItem("退出");
  29.                 ta = new TextArea();
  30.                 fileMenu.add(openItem);
  31.                 fileMenu.add(saveItem);
  32.                 fileMenu.add(closeItem);
  33.                 mb.add(fileMenu);
  34.                 f.setMenuBar(mb);
  35.                 f.add(ta);
  36.                 openDia = new FileDialog(f, "我要打开", FileDialog.LOAD);
  37.                 saveDia = new FileDialog(f, "我要保存", FileDialog.SAVE);
  38.                 myEvent();
  39.                 f.setVisible(true);

  40.         }

  41.         private void myEvent() {

  42.                 saveItem.addActionListener(new ActionListener() {

  43.                         @Override
  44.                         public void actionPerformed(ActionEvent e) {
  45.                                 // TODO Auto-generated method stub
  46.                                 if (file == null) {
  47.                                         saveDia.setVisible(true);
  48.                                         String path = saveDia.getDirectory();// 得到文件夹
  49.                                         String name = saveDia.getFile(); // 得到文件名字
  50.                                         if (path == null || name == null) {
  51.                                                 return;
  52.                                         }
  53.                                         file = new File(path, name);
  54.                                 }
  55.                                 try {
  56.                                         BufferedWriter bufw = new BufferedWriter(new FileWriter(
  57.                                                         file));
  58.                                         String text = ta.getText();
  59.                                         bufw.write(text);
  60.                                         bufw.close();
  61.                                 } catch (IOException e1) {
  62.                                         // TODO Auto-generated catch block
  63.                                         e1.printStackTrace();
  64.                                 }
  65.                         }
  66.                 });
  67.                 f.addWindowListener(new WindowAdapter() {
  68.                         public void windowClosing(WindowEvent e) {
  69.                                 System.exit(0);
  70.                         }
  71.                 });
  72.                 openItem.addActionListener(new ActionListener() {

  73.                         @Override
  74.                         public void actionPerformed(ActionEvent e) {
  75.                                 // TODO Auto-generated method stub
  76.                                 openDia.setVisible(true);
  77.                                 String path = openDia.getDirectory();// 得到文件夹
  78.                                 String name = openDia.getFile(); // 得到文件名字
  79.                                 // System.out.println(path+"..."+name);
  80.                                 if (path == null || name == null) {
  81.                                         return;
  82.                                 }
  83.                                 file = new File(path, name);
  84.                                 ta.setText("");
  85.                                 try {
  86.                                         BufferedReader br = new BufferedReader(new FileReader(file));
  87.                                         String text = ta.getText();
  88.                                         String line = null;
  89.                                         try {
  90.                                                 while ((line = br.readLine()) != null) {
  91.                                                         ta.append(line + "\r\n");
  92.                                                 }
  93.                                                 br.close();
  94.                                         } catch (IOException e1) {
  95.                                                 // TODO Auto-generated catch block
  96.                                                 e1.printStackTrace();
  97.                                         }
  98.                                 } catch (FileNotFoundException e1) {
  99.                                         // TODO Auto-generated catch block
  100.                                         e1.printStackTrace();
  101.                                 }

  102.                         }

  103.                 });

  104.         }

  105.         public static void main(String[] args) {
  106.                 new Test8();
  107.         }
  108. }
复制代码

作者: 鑫森淼焱垚    时间: 2013-6-15 08:24
复制、并运行了一下,挺牛的!
作者: 胡滨    时间: 2013-6-15 08:29
{:soso_e179:}
作者: 姚志远    时间: 2013-6-15 09:32
GUI+IO 奥




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2