别人的拿来贴一下
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;public class tj {
    String title="ERROR MESSAGE";
    int type=JOptionPane.ERROR_MESSAGE;
  public tj() {
    final JFrame frame = new JFrame("My Edit");
    final JTextArea text=new JTextArea();
    
    frame.setSize(600, 500);
    frame.addWindowListener(new WindowAdapter(){
        public void windowClosing(WindowEvent e){
             System.exit(0);
        }});
    JPanel panel=new JPanel();
    panel.setLayout(new GridLayout(1,1));
    panel.add(new JScrollPane(text));
    frame.getContentPane().add(panel);
    JMenuBar Mbar = new JMenuBar();
    frame.setJMenuBar(Mbar);
    JMenu jfile = new JMenu("File");
    JMenu jedit = new JMenu("Edit");
    JMenu jhelp = new JMenu("Help");
    Mbar.add(jfile);
    Mbar.add(jedit);
    Mbar.add(jhelp);
    JMenuItem jnew = new JMenuItem("New");
    jnew.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
              text.setText(" ");
        }});
    jnew.setMnemonic('N');
    jnew.setAccelerator( KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK,true));
    JMenuItem jopen = new JMenuItem("Open");
    jopen.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
             JFileChooser openfile=new JFileChooser();
             openfile.setDialogTitle("open file");
             openfile.setApproveButtonText("open");
             openfile.showOpenDialog(frame);
             File file=openfile.getSelectedFile();
             FileInputStream inputfile=null;
             String message="The file not Found";
            try{
              inputfile=new FileInputStream(file);
            }
             catch(FileNotFoundException fe) 
             {       
             JOptionPane.showMessageDialog(frame,message,title,type);
             }
             int readbytes;
             String message1="read file error";
             try{
                while((readbytes=inputfile.read())!=-1)
                {
                        text.append(String.valueOf((char)readbytes));   
                }
             }
             catch(IOException ioe)
             {
               JOptionPane.showMessageDialog(frame,message1,title,type);  
              }
             String closemessage="close stream error";
             try{
                     inputfile.close();
             }
             catch(IOException ioe)
             {
               JOptionPane.showMessageDialog(frame,closemessage,title,type);   
             } 
        }});
    jopen.setMnemonic('O');
    jopen.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK,true));
    JMenuItem jsave = new JMenuItem("Save");
    jsave.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
           JFileChooser savefile=new JFileChooser();
           savefile.setApproveButtonText("save"); 
           savefile.setDialogTitle("save file"); 
           savefile.showSaveDialog(frame);
           File filesa=savefile.getSelectedFile();
           String messagef="File not Found";
           FileOutputStream outputfile=null;
           try{
             outputfile=new FileOutputStream(filesa);
            }
             catch(FileNotFoundException fe) 
             {       
             JOptionPane.showMessageDialog(frame,messagef,title,type);
             }
           String filecontent=text.getText();
           String wrmessage="write error";
           try
           {
               outputfile.write(filecontent.getBytes());
              }
           catch(IOException ioe)
           {
            JOptionPane.showMessageDialog(frame,wrmessage,title,type);   
           } 
           String cmessage="close stream error";
           try{
               outputfile.close();
           }
           catch(IOException ioe)
           {
               JOptionPane.showMessageDialog(frame,cmessage,title,type);
           }
    }});
    jsave.setMnemonic('S');
    jsave.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK,true));
    JMenuItem jquite = new JMenuItem("Quite");
    jquite.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            System.exit(0);
        }});
    jquite.setMnemonic('Q');
    jquite.setAccelerator(KeyStroke.getKeyStroke('Q',java.awt.Event.CTRL_MASK,true));
    JMenuItem jfind = new JMenuItem("Find");
    jfind.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            
        }});
     jfind.setMnemonic('F');
     jfind.setAccelerator(KeyStroke.getKeyStroke('F',java.awt.Event.CTRL_MASK,true));
    JMenuItem jcut = new JMenuItem("Cut");
    jcut.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
              text.cut();
        }});
    jcut.setMnemonic('C');
    jcut.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.CTRL_MASK,true));
    JMenuItem jcopy = new JMenuItem("Copy");
    jcopy.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
              text.copy();
        }});
    jcopy.setMnemonic('o');
    jcopy.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK,true));
    JMenuItem jpaste = new JMenuItem("Paste");
    jpaste.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
              text.paste();
        }});
    jpaste.setMnemonic('P');
    jpaste.setAccelerator(KeyStroke.getKeyStroke('P',java.awt.Event.CTRL_MASK,true));
    JMenuItem jiami = new JMenuItem("Jiami");
    jiami.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e){
            
        }});
     JMenuItem jabout = new JMenuItem("About");
    jabout.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent e){
             int type=JOptionPane.INFORMATION_MESSAGE;
             String title="About";
             String message="The software is writed by Yangwencheng";
             JOptionPane.showMessageDialog(frame,message,title,type);
         }});
    jfile.add(jnew);
    jfile.add(jopen);
    jfile.add(jsave);
    jfile.addSeparator();
    jfile.add(jquite);
    jedit.add(jcut);
    jedit.add(jcopy);
    jedit.add(jpaste);
    jedit.add(jfind);
    jedit.add(jiami);
    jhelp.add(jabout);
    frame.setVisible(true);
  }
 public static void main(String[] args) {
    tj tj1 = new tj();
  }        
         
}

解决方案 »

  1.   

    thinking in java这本书不错,大师写的
    http://java.4kiki.net/有中文版的下
      

  2.   

    会C++,那看thinking in java应该没问题,不过象你这样急着做个东西倒没必要去看,随便抓本书,再看看API吧,去这里找找看或许有你要的 http://www.javaresearch.org
      

  3.   

    感谢上面的兄弟呀,lanleer(三分之一理想)给出的代码我调试了,几下就通过了,功能比我要求的还要多呀,于是删除一些代码,改了改文本显示(写代码的兄弟不要怪我呀),作业算是完成了。    JAVA 真是神奇呀,这么一点代码,就有了图形界面、菜单、快捷键、文件操作功能,真是适合做快速开发。我想借这个机会走进JAVA,我会看看 thinking in java,曾经读过 thinking in C++,是一本比较好理解的书。以后学习的过程中,会碰到更多的问题,还望大家不吝赐教哈现在就有几点不明之处请大家指教:① 最前面的几行 import 是不是导入的JAVA 库,是否和C中的 include 类似?② 这个程序现在打开其它编辑器生成的含中文字符的文件时是乱码,但它自己保存了文件中含有中文字符的话可以正确打开③ 怎么样使这个程序可以脱离JC环境独立运行?我从Google了解到可以将程序打包后独立运行,但没有找到找包的方法④ 大家用JAVA编码时常用的缩进习惯是怎么的?JC生成的代码缩进习惯不太统一,看起来很不舒服
    有这样的
    if (...) {
    }
    也有这样的
    if (...)
    {
    }我个人比较喜欢后一种风格,因为看起来很清晰,最受不了的是这样的
    if(...) {
       if( ...)
       }}
      

  4.   

    还有一个问题:我怎么知道JAVA里面有 JFrame、JTextArea、JPanel 等等,在哪一方面的书里有介绍?谢谢大家
      

  5.   

    去SUN的官方网站下载java的documentation,http://java.sun.com/docs/index.html。里面对每个API有说明。