今天朋友给了我一个简单的JAVA 应用程序
本人网络方向,有些地方不是太懂
   希望大家帮我解释一下
   帮我写下每一段或句字的解释代码如下:是一个记事本的代码希望高手可以粘贴过后,帮我每行注释
import javax.swing.*; 
import javax.swing.event.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.io.*; 
import java.awt.color.*; 
import java.awt.font.*; 
import javax.swing.undo.*; public class Note extends JFrame 

boolean isChange=false; 
boolean wasChange=false; 
JMenuBar menuBar=new JMenuBar(); JMenu menuFile=new JMenu("File"); 
JMenuItem menuFileOpen=new JMenuItem("Open.."); 
JMenuItem menuFileSave=new JMenuItem("Save.."); 
JMenuItem menuFileExit=new JMenuItem("Exit"); JMenu menuEdit=new JMenu("Edit"); 
JMenuItem menuFileCut=new JMenuItem("Cut"); 
JMenuItem font=new JMenuItem("Font"); 
JMenuItem menuFilePaste=new JMenuItem("Paste"); JTextArea fileArea=new JTextArea(); public Note() 

this.setTitle("记事本"); 
Toolkit tool=this.getToolkit();//窗口图标! 
Image myimage=tool.getImage("戒指.jpg"); 
this.setIconImage(myimage); 
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); 
addWindowListener(new WindowAdapter() 

public void windowClosing(WindowEvent e) 

exit(); 

}); 
menuFileOpen.addActionListener(new ActionListener() 

public void actionPerformed(ActionEvent e) 

fileOpen_actionPerformed(e); 

}); 
menuFileSave.addActionListener(new ActionListener() 

public void actionPerformed(ActionEvent e) 

fileSave_actionPerformed(e); 

}); 
menuFileExit.addActionListener(new ActionListener() 

public void actionPerformed(ActionEvent e) 

fileExit_actionPerformed(e); 

}); 
menuFileCut.addActionListener(new ActionListener() 

public void actionPerformed(ActionEvent e) 

fileCut_actionPerformed(e); 

}); 
menuFilePaste.addActionListener(new ActionListener() 

public void actionPerformed(ActionEvent e) 

filePaste_actionPerformed(e); 

}); 
font.addActionListener(new ActionListener () 

public void actionPerformed(ActionEvent e) 

fileColor_actionPerformed(e); 

}); 
fileArea.getDocument().addDocumentListener(new DocumentListener() 

public void insertUpdate(DocumentEvent e) 

wasChange=isChange; 
isChange=true; 

public void removeUpdate(DocumentEvent e) 

wasChange=isChange; 
isChange=true; 

public void changedUpdate(DocumentEvent e) 

wasChange=isChange; 
isChange=true; 

}); 
setSize(500,450); 
menuBar.add(menuFile); 
menuFile.setMnemonic('F'); 
menuBar.add(menuEdit); 
menuEdit.setMnemonic('E'); 
menuFile.add(menuFileOpen); 
menuFileOpen.setMnemonic('O');//访问健; 
menuFileOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));//快捷健; 
menuFile.add(menuFileSave); 
menuFileSave.setMnemonic('S'); 
menuFileSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); 
menuFile.addSeparator(); 
menuFile.add(menuFileExit); 
menuFileExit.setMnemonic('E'); 
menuEdit.add(menuFileCut); 
menuFileCut.setMnemonic('C'); 
menuFileCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK)); 
menuEdit.add(menuFilePaste); 
menuFilePaste.setMnemonic('P'); 
menuFilePaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK)); 
menuEdit.add(font); 
font.setMnemonic('N'); 
font.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK)); 
this.getContentPane().add(new JScrollPane(fileArea)); 
setJMenuBar(menuBar); 
fileArea.setLineWrap(true); 

public void fileExit_actionPerformed(ActionEvent e) 

System.exit(0); 

public void fileOpen_actionPerformed(ActionEvent e) 

//以下是filter; 
JFileChooser fileChooser=new JFileChooser(); 
//fileChooser.addChoosableFileFilter(new myFilter("*.txt","Files(*.txt)")); 
fileChooser.addChoosableFileFilter(fileChooser.getFileFilter()); 
if(fileChooser.APPROVE_OPTION!=fileChooser.showOpenDialog(this))return; 
//以下是文件读 
BufferedReader dataIn=null; 
try 

dataIn=new BufferedReader(new FileReader(fileChooser.getSelectedFile().getPath())); 
String c=null; 
do 

c=dataIn.readLine(); 
if(c!=null) 
fileArea.append(c+"\n"); 

while(c!=null); 

catch(Exception ex) 

System.out.println("Catch exception:"+ex.toString()); 


public void exit() 

if(isChange==false) 
System.exit(1); 
else 

int decision=JOptionPane.showConfirmDialog(this,"The File has Change.\n"+"Do you want to save the change?", 
"Notepad",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE); 
if (decision == JOptionPane.YES_OPTION) 

//以下是将文件写入计算机! 
try { 
JFileChooser fileSave = new JFileChooser(); 
fileSave.setDialogTitle("保存文件"); 
//fileSave.addChoosableFileFilter(new myFilter("*.txt","Files(*.txt)")); 
fileSave.addChoosableFileFilter(fileSave.getFileFilter()); 
if (fileSave.APPROVE_OPTION != fileSave.showSaveDialog(this)) 
return; 
BufferedWriter dataOut = new BufferedWriter(new BufferedWriter(new 
FileWriter(fileSave.getSelectedFile()))); 
String c = null; 
do { 
String str = fileArea.getText(); 
dataOut.write(str); 
dataOut.close(); 

while (c != null); 

catch (Exception e2) { 
System.out.println("Catch exception:有错误!" + e2.toString()); 


else if (decision == JOptionPane.NO_OPTION) 
System.exit(1); 
else if (decision == JOptionPane.CANCEL_OPTION); 


//innerclass.fileSave_actionPerformed(); 

public void fileSave_actionPerformed(ActionEvent e1) 
{ //以下是将文件写入计算机! 
try 

JFileChooser fileSave=new JFileChooser(); 
fileSave.setDialogTitle("保存文件" ); 
//fileSave.addChoosableFileFilter(new myFilter("*.txt","Files(*.txt)")); 
fileSave.addChoosableFileFilter(fileSave.getFileFilter()); 
if(fileSave.APPROVE_OPTION!=fileSave.showSaveDialog(this))return; 
BufferedWriter dataOut=new BufferedWriter(new BufferedWriter(new FileWriter(fileSave.getSelectedFile()+".txt"))); 
//RandomAccessFile dataOut=new RandomAccessFile(fileSave.getSelectedFile(),"rw"); 
String c=null; 
do 

String str=fileArea.getText(); 
dataOut.write(str); 
dataOut.close(); 

while(c!=null); 

catch(Exception e2) 

System.out.println("Catch exception:有错误!"+e2.toString()); 


public static void main(String arg[]) 

Note nt=new Note(); 
nt.show(); 

public void fileCut_actionPerformed(ActionEvent e) 

fileArea.cut(); 

public void filePaste_actionPerformed(ActionEvent e) 

fileArea.paste(); 

public void fileColor_actionPerformed(ActionEvent e) 

JColorChooser fileColor=new JColorChooser(); 
//fileArea.setForeground(fileColor.showDialog(this,"颜色",Color.red)); 
//fileArea.setSelectionColor(fileColor.showDialog(this,"颜色",Color.red)); 
fileArea.setSelectionColor(fileColor.showDialog(this,"颜色",Color.black)); 

解决方案 »

  1.   

    package infant.query;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.awt.color.*;
    import java.awt.font.*;
    import javax.swing.undo.*;/**
     * <p>Title: </p>
     *
     * <p>Description: </p>
     *
     * <p>Copyright: Copyright (c) 2007</p>
     *
     * <p>Company: </p>
     *
     * @author not attributable
     * @version 1.0
     */public class Note extends JFrame {
        boolean isChange = false;
        boolean wasChange = false;
        JMenuBar menuBar = new JMenuBar();//实例菜单栏    JMenu menuFile = new JMenu("File");//实例"File"菜单
        JMenuItem menuFileOpen = new JMenuItem("Open..");//实例“File”菜单下的“Open..”选项
        JMenuItem menuFileSave = new JMenuItem("Save..");
        JMenuItem menuFileExit = new JMenuItem("Exit");    JMenu menuEdit = new JMenu("Edit");
        JMenuItem menuFileCut = new JMenuItem("Cut");
        JMenuItem font = new JMenuItem("Font");
        JMenuItem menuFilePaste = new JMenuItem("Paste");    JTextArea fileArea = new JTextArea();    public Note() {
            this.setTitle("记事本");
            Toolkit tool = this.getToolkit(); //窗口图标!
            Image myimage = tool.getImage("戒指.jpg");
            this.setIconImage(myimage);
            setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);//设置用户在此窗体上发起 "close" 时默认执行的操作。“DO_NOTHING_ON_CLOSE”是指关闭的时候什么都不做
            addWindowListener(new WindowAdapter() {//添加指定的窗口侦听器
                public void windowClosing(WindowEvent e) {
                    exit();
                }
            });
            menuFileOpen.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    fileOpen_actionPerformed(e);
                }
            });
            menuFileSave.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    fileSave_actionPerformed(e);
                }
            });
            menuFileExit.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    fileExit_actionPerformed(e);
                }
            });
            menuFileCut.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    fileCut_actionPerformed(e);
                }
            });
            menuFilePaste.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    filePaste_actionPerformed(e);
                }
            });
            font.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    fileColor_actionPerformed(e);
                }
            });
            fileArea.getDocument().addDocumentListener(new DocumentListener() {
                public void insertUpdate(DocumentEvent e) {
                    wasChange = isChange;
                    isChange = true;
                }            public void removeUpdate(DocumentEvent e) {
                    wasChange = isChange;
                    isChange = true;
                }            public void changedUpdate(DocumentEvent e) {
                    wasChange = isChange;
                    isChange = true;
                }
            });
            setSize(500, 450);//设置窗体大小
            menuBar.add(menuFile);
            menuFile.setMnemonic('F');
            menuBar.add(menuEdit);
            menuEdit.setMnemonic('E');
            menuFile.add(menuFileOpen);
            menuFileOpen.setMnemonic('O'); //访问健;
            menuFileOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
                    InputEvent.CTRL_MASK)); //快捷健;
            menuFile.add(menuFileSave);
            menuFileSave.setMnemonic('S');//设置当前模型上的键盘助记符,不过现在setMnemonic(char mnemonic)方法已废弃,应使用setMnemonic(int mnemonic) 
            menuFileSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
                    InputEvent.CTRL_MASK));
            menuFile.addSeparator();
            menuFile.add(menuFileExit);
            menuFileExit.setMnemonic('E');
            menuEdit.add(menuFileCut);
            menuFileCut.setMnemonic('C');
            menuFileCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
                    InputEvent.CTRL_MASK));
            menuEdit.add(menuFilePaste);
            menuFilePaste.setMnemonic('P');
            menuFilePaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,
                    InputEvent.CTRL_MASK));
            menuEdit.add(font);
            font.setMnemonic('N');
            font.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
                    InputEvent.CTRL_MASK));
            this.getContentPane().add(new JScrollPane(fileArea));
            setJMenuBar(menuBar);
            fileArea.setLineWrap(true);
        }    public void fileExit_actionPerformed(ActionEvent e) {//“fileExit”选项监听器
            System.exit(0);//执行退出操作
        }    public void fileOpen_actionPerformed(ActionEvent e) {//“fileOpen”选项监听器
    //以下是filter;
            JFileChooser fileChooser = new JFileChooser();//目录文件选择器
    //fileChooser.addChoosableFileFilter(new   myFilter("*.txt","Files(*.txt)"));
            fileChooser.addChoosableFileFilter(fileChooser.getFileFilter());
            if (fileChooser.APPROVE_OPTION != fileChooser.showOpenDialog(this))//“fileChooser.APPROVE_OPTION”:选择确认(yes、ok)后返回该值。
                return;
    //以下是文件读
            BufferedReader dataIn = null;//“BufferedReader”:从字符输入流中读取文本
            try {
                dataIn = new BufferedReader(new FileReader(fileChooser.
                        getSelectedFile().getPath()));
                String c = null;
                do {
                    c = dataIn.readLine();//读取一个文本行
                    if (c != null)
                        fileArea.append(c + "\n");//将给定文本追加到文档结尾,此处为“换行”
                } while (c != null);
            } catch (Exception ex) {
                System.out.println("Catch   exception:" + ex.toString());
            }
        }    public void exit() {
            if (isChange == false)
                System.exit(1);
            else {
                int decision = JOptionPane.showConfirmDialog(this,//退出时如果未执行保存操作则提示
                        "The   File   has   Change.\n" +
                        "Do   you   want   to   save   the   change?",
                            "Notepad", JOptionPane.YES_NO_CANCEL_OPTION,
                            JOptionPane.WARNING_MESSAGE);//拥有“是”“否”“撤销”类型的提示框
                if (decision == JOptionPane.YES_OPTION) {//选择“是”的情况
    //以下是将文件写入计算机!
                    try {
                        JFileChooser fileSave = new JFileChooser();
                        fileSave.setDialogTitle("保存文件");
    //fileSave.addChoosableFileFilter(new   myFilter("*.txt","Files(*.txt)"));
                        fileSave.addChoosableFileFilter(fileSave.getFileFilter());
                        if (fileSave.APPROVE_OPTION != fileSave.showSaveDialog(this))
                            return;
                        BufferedWriter dataOut = new BufferedWriter(new
                                BufferedWriter(new
                                               FileWriter(fileSave.getSelectedFile())));//“BufferedWriter”:将文本写入字符输出流
                        String c = null;
                        do {
                            String str = fileArea.getText();
                            dataOut.write(str);
                            dataOut.close();
                        } while (c != null);
                    } catch (Exception e2) {
                        System.out.println("Catch   exception:有错误!" + e2.toString());
                    }
                } else if (decision == JOptionPane.NO_OPTION)//选择“否”的情况
                    System.exit(1);
                else if (decision == JOptionPane.CANCEL_OPTION)//选择“取消”的情况
                    ;
                    ;
            }
    //innerclass.fileSave_actionPerformed();
        }    /***********************/
    }
      

  2.   

     public void fileSave_actionPerformed(ActionEvent e1) {//以下是将文件写入计算机!
            try {
                JFileChooser fileSave = new JFileChooser();
                fileSave.setDialogTitle("保存文件");
    //fileSave.addChoosableFileFilter(new   myFilter("*.txt","Files(*.txt)"));
                fileSave.addChoosableFileFilter(fileSave.getFileFilter());
                if (fileSave.APPROVE_OPTION != fileSave.showSaveDialog(this))
                    return;
                BufferedWriter dataOut = new BufferedWriter(new BufferedWriter(new
                        FileWriter(fileSave.getSelectedFile() + ".txt")));
    //RandomAccessFile   dataOut=new   RandomAccessFile(fileSave.getSelectedFile(),"rw");
                String c = null;
                do {
                    String str = fileArea.getText();
                    dataOut.write(str);
                    dataOut.close();
                } while (c != null);
            } catch (Exception e2) {
                System.out.println("Catch   exception:有错误!" + e2.toString());
            }
        }    public static void main(String arg[]) {
            Note nt = new Note();
            nt.show();
        }    public void fileCut_actionPerformed(ActionEvent e) {
            fileArea.cut();
        }    public void filePaste_actionPerformed(ActionEvent e) {
            fileArea.paste();
        }    public void fileColor_actionPerformed(ActionEvent e) {
            JColorChooser fileColor = new JColorChooser();
    //fileArea.setForeground(fileColor.showDialog(this,"颜色",Color.red));
    //fileArea.setSelectionColor(fileColor.showDialog(this,"颜色",Color.red));
            fileArea.setSelectionColor(fileColor.showDialog(this, "颜色", Color.black));
        }