import java.awt.*;
import java.awt.event.*;
import java.io.*;public class tt
    extends Frame
    implements ActionListener {
  static tt frm = new tt();
  static MenuBar menubar = new MenuBar();
  static Menu menu1 = new Menu("文件");
  static MenuItem item1 = new MenuItem("打开");
  static MenuItem item2 = new MenuItem("保存");  static FileDialog dia1 = new FileDialog(frm, "打开");
  static FileDialog dia2 = new FileDialog(frm, "保存", FileDialog.SAVE);
  static TextArea txa = new TextArea();  static WinLis wlis = new WinLis();  public static void main(String agrs[]) {
    BorderLayout br = new BorderLayout();
    frm.setTitle("小记事本");    menubar.add(menu1);    menu1.add(item1);
    menu1.add(item2);    item1.addActionListener(frm);
    item2.addActionListener(frm);    frm.add(txa);    frm.setMenuBar(menubar);    frm.setSize(800, 650);
    frm.setVisible(true);    frm.addWindowListener(wlis);
    frm.addWindowListener(wlis);
  }  static class WinLis
      extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
      frm.dispose();
    }  }  public void actionPerformed(ActionEvent e) {
    MenuItem item = (MenuItem) e.getSource();
    if (item == item1) {
      dia1.setVisible(true);      String fname = dia1.getDirectory() + dia1.getFile();
      try {
        FileInputStream fi = new FileInputStream(fname);
        byte ba[] = new byte[fi.available()];
        fi.read(ba);
        txa.setText(new String(ba));
        fi.close();
      }
      catch (IOException ioe) {}
      ;
    }
    if (item == item2) {
      dia2.setVisible(true);
      String fname2 = dia2.getDirectory();
      File file = new File(dia2.getFile() + ".txt");
      String s = txa.getText();      try {
        BufferedWriter out = new BufferedWriter(new FileWriter(fname2 + file));
        out.write(s);
        out.close();      }
      catch (Exception ioe) {
        ioe.printStackTrace();
      }    }
  }
}

解决方案 »

  1.   

    呵呵,谢谢楼主分享。TextArea的好处就是自带滚动条,JTextArea要配合JScrollPane使用才有滚动条。
      

  2.   

    JTextArea的强大岂是TextArea可比。
      

  3.   


    当然,要不然sun还推出swing做啥。
      

  4.   

    import java.awt.*;
    import java.awt.event.*;
    public class MyFrame extends Frame implements ActionListener
    {
    MenuItem mi11=new MenuItem("打开"),
                 mi12=new MenuItem("保存"),
             mi13=new MenuItem("退出");
    MenuItem mi21=new MenuItem("剪切"),
             mi22=new MenuItem("复制"),
             mi23=new MenuItem("粘贴"),
             mi24=new MenuItem("删除"),
             mi25=new MenuItem("修改"),
             mi26=new MenuItem("插入"),
                 mi27=new MenuItem("查找"),
             mi28=new MenuItem("替换");
        MenuItem mi31=new MenuItem("关于");          
    Menu m1=new Menu("文件"),
             m2=new Menu("编辑"),
             m3=new Menu("帮助");
    MenuBar mb=new MenuBar();
        TextArea textarea;
        TextField text1=new TextField(); 
        
        FileDialog filedialog_load,
                   filedialog_save;    
        MyFrame()
    {
    super("文本编辑器");
        textarea=new TextArea();
        setVisible(true);
        setSize(450,300);
        addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});
        
        m1.add(mi11);m1.addSeparator();m1.add(mi12);m1.addSeparator();m1.add(mi13);
        m2.add(mi21);m2.add(mi22);m2.add(mi23);m2.add(mi24);m2.addSeparator();m2.add(mi25);m2.add(mi26);m2.add(mi27);m2.add(mi28);
        m3.add(mi31);
        mi13.setShortcut(new MenuShortcut(KeyEvent.VK_E));
        mb.add(m1);mb.add(m2);mb.add(m3); 
        setMenuBar(mb);
       
        mi11.addActionListener(this); mi12.addActionListener(this);mi13.addActionListener(this);
        add(textarea,BorderLayout.CENTER);
        add(text1,BorderLayout.SOUTH);
        
        
        filedialog_save=new FileDialog(this,"保存文件话框",FileDialog.SAVE);
        filedialog_save.setVisible(false);
        filedialog_load=new FileDialog(this,"打开文件话框",FileDialog.LOAD);
        filedialog_load.setVisible(false);
        filedialog_save.addWindowListener(new WindowAdapter()//对话框增加适配器
            {  public void windowClosing(WindowEvent e)
                       {  filedialog_save.setVisible(false);
                       }
             });
        filedialog_load.addWindowListener(new WindowAdapter()//对话框增加适配器
                 {public void windowClosing(WindowEvent e)
                       { filedialog_load.setVisible(false);
                       }
                 });
        addWindowListener(new WindowAdapter()  //窗口增加适配器
                {public void windowClosing(WindowEvent e)
                      { setVisible(false);System.exit(0);
                      }
                });
       }
       public void actionPerformed(ActionEvent e) //实现接口中的方法
       {  if(e.getSource()==mi12)
            {  filedialog_save.setVisible(true);   
            }
          else if(e.getSource()==mi11)
            {  filedialog_load.setVisible(true);   
            }
          else 
            {  System.exit(0);
            }
       } 
        
        
     
    public static void main(String[] args)
    {
    new MyFrame();
    }
    }
    楼主,你的还有好多功能没完善。需要改进,想复制剪切,打开内容……
    我的这个只完成了界面。还需要应用输入输出流实现某些功能。
      

  5.   

    好像jdk1.4里面有个默认的而且开源的记事本实现,有兴趣可以去瞻仰一下。
      

  6.   

    Java SDK 自带2个文本编辑器,为什么没人看哪?%JAVA_HOME%\demo\jfc\Notepad
    %JAVA_HOME%\demo\jfc\Stylepad
      

  7.   

    在做web,没接触到这些, 兴趣蛮大~