jButton1.setToolTipText("Open File");
    jButton2.setIcon(image2);
    jButton2.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton2_actionPerformed(e);
      }
    });
    jButton2.setToolTipText("Close File");
    jButton3.setIcon(image3);
    jButton3.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton3_actionPerformed(e);
      }
    });
    jButton3.setToolTipText("Help");
    jTextArea1.setLineWrap(true);
    jMenuFileOpen.setText("Open....");
    jMenuFileOpen.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuFileOpen_actionPerformed(e);
      }
    });
    jMenuFileNew.setText("New");
    jMenuFileNew.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuFileNew_actionPerformed(e);
      }
    });
    jMenuFileSave.setText("Save");
    jMenuFileSave.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuFileSave_actionPerformed(e);
      }
    });
    jMenuFileSaveas.setText("Save As...");
    jMenuFileSaveas.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuFileSaveas_actionPerformed(e);
      }
    });
    jMenuEdit.setText("Edit");
    jMenuEditFont.setText("Font....");
    jMenuEditFont.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuEditFont_actionPerformed(e);
      }
    });
    jMenuEditColor.setText("Foreground Color");
    jMenuEditColor.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuEditColor_actionPerformed(e);
      }
    });
    jMenuEditBColor.setText("Background Color");
    jMenuEditBColor.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jMenuEditBColor_actionPerformed(e);
      }
    });
    fontChooser1.setFrame(this);
    fontChooser1.setTitle("选择字体");
    document1=jTextArea1.getDocument();
    document1.addDocumentListener(new javax.swing.event.DocumentListener() {
      public void insertUpdate(DocumentEvent e) {
        document1_insertUpdate(e);
      }
      public void removeUpdate(DocumentEvent e) {
        document1_removeUpdate(e);
      }
      public void changedUpdate(DocumentEvent e) {
        document1_changedUpdate(e);
      }
    });

解决方案 »

  1.   

    jMenuEditUndo.setText("Undo");
        jMenuEditUndo.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            jMenuEditUndo_actionPerformed(e);
          }
        });
        jMenuEditRedo.setText("Redo");
        jMenuEditRedo.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            jMenuEditRedo_actionPerformed(e);
          }
        });
        jMenuEditCopy.setText("Copy");
        jMenuEditCopy.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            jMenuEditCopy_actionPerformed(e);
          }
        });
        jMenuEditCut.setText("Cut");
        jMenuEditCut.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            jMenuEditCut_actionPerformed(e);
          }
        });
        jMenuEditPaste.setText("Paste");
        jMenuEditSelAll.setText("Select All");
        jMenuEditSelAll.addActionListener(new java.awt.event.ActionListener() {
          public void actionPerformed(ActionEvent e) {
            jMenuEditSelAll_actionPerformed(e);
          }
        });
        jToolBar.add(jButton1);
        jToolBar.add(jButton2);
        jToolBar.add(jButton3);
        jMenuFile.add(jMenuFileNew);
        jMenuFile.add(jMenuFileOpen);
        jMenuFile.add(jMenuFileSave);
        jMenuFile.add(jMenuFileSaveas);
        jMenuFile.addSeparator();
        jMenuFile.add(jMenuFileExit);
        jMenuHelp.add(jMenuHelpAbout);
        jMenuBar1.add(jMenuFile);
        jMenuBar1.add(jMenuEdit);
        jMenuBar1.add(jMenuHelp);
        this.setJMenuBar(jMenuBar1);
        contentPane.add(jToolBar, BorderLayout.NORTH);
        contentPane.add(statusBar, BorderLayout.SOUTH);
        contentPane.add(TextScrollPane, BorderLayout.CENTER);
        TextScrollPane.getViewport().add(jTextArea1, null);
        jMenuEdit.add(jMenuEditUndo);
        jMenuEdit.add(jMenuEditRedo);
        jMenuEdit.add(jMenuEditCopy);
        jMenuEdit.add(jMenuEditCut);
        jMenuEdit.add(jMenuEditPaste);
        jMenuEdit.addSeparator();
        jMenuEdit.add(jMenuEditSelAll);
        jMenuEdit.add(jMenuEditFont);
        jMenuEdit.add(jMenuEditColor);
        jMenuEdit.add(jMenuEditBColor);
        document1 = jTextArea1.getDocument();
      }
      /**File | Exit action performed*/
      public void jMenuFileExit_actionPerformed(ActionEvent e) {
        if (!okToAbandon()) {  return;}
        System.exit(0);
      }
      /**Help | About action performed*/
      public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
        TextEditorFrame_AboutBox dlg = new TextEditorFrame_AboutBox(this);
        Dimension dlgSize = dlg.getPreferredSize();
        Dimension frmSize = getSize();
        Point loc = getLocation();
        dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
        dlg.setModal(true);
        dlg.show();
      }
      /**Overridden so we can exit when window is closed*/
      protected void processWindowEvent(WindowEvent e) {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
          jMenuFileExit_actionPerformed(null);
        }
      }  void jMenuFileNew_actionPerformed(ActionEvent e) {
        if(okToAbandon()){
           jTextArea1.setText("");
           currentFileName = null;
           saveNeeded = false;
           updateTitle();
        }  }
      

  2.   

    void jMenuFileOpen_actionPerformed(ActionEvent e) {
        openFile();
      }  void jButton1_actionPerformed(ActionEvent e) {
        openFile();
      }  void jMenuFileSave_actionPerformed(ActionEvent e) {
        saveFile();
      }  void jButton2_actionPerformed(ActionEvent e) {
        saveFile();
      }  void jMenuFileSaveas_actionPerformed(ActionEvent e) {
        saveAsFile();
      }  void jButton3_actionPerformed(ActionEvent e) {  }  void this_windowClosing(WindowEvent e) {
         if (!okToAbandon()) {  return;}
         System.exit(0);
      }  void jMenuEditFont_actionPerformed(ActionEvent e) {
         fontChooser1.setSelectedFont(jTextArea1.getFont());
        if (fontChooser1.showDialog()) {
           jTextArea1.setFont(fontChooser1.getSelectedFont());
         }
         this.repaint();
         jTextArea1.repaint();
      }  void jMenuEditColor_actionPerformed(ActionEvent e) {
         Color color = JColorChooser.showDialog(this,"Foreground Color",jTextArea1.getForeground());
         if (color != null) {
            jTextArea1.setForeground(color);
          }
          this.repaint();
      }  void jMenuEditBColor_actionPerformed(ActionEvent e) {
          Color color = JColorChooser.showDialog(this,"Background Color",jTextArea1.getBackground());
         if (color != null) {
            jTextArea1.setBackground(color);
          }
          this.repaint();
      }
      void openFile(){
    if (!okToAbandon()) {
        return;
    }
    if(JFileChooser.APPROVE_OPTION== jFileChooser1.showOpenDialog(this)) {
    openSelectedFile(jFileChooser1.getSelectedFile().getPath());
    }
    this.repaint();
    }
    void openSelectedFile(String fileName){
      try{
        File file = new File(fileName);
        int fileSize = (int)file.length();
    int charsReaded = 0;
        FileReader in = new FileReader(file);
        char[] data = new char[fileSize];
        while(in.ready()) {
          charsReaded += in.read(data, charsReaded, fileSize - charsReaded);
        }
        in.close();
        jTextArea1.setText(new String(data, 0, charsReaded));
        this.currentFileName = fileName;
        this.saveNeeded = false;
        statusBar.setText("打开 "+fileName);
        updateTitle();
      }
      catch (IOException e){
          statusBar.setText("Error opening "+fileName);
      }
    }
    boolean okToAbandon() {
      if (!saveNeeded) {
        return true;
      }
      JTextField txtUserName=new JTextField();
      JPasswordField extPwd=new JPasswordField();
      Object[] msg=new Object[]{new String("请输入用户名"),txtUserName,new String("口令"),extPwd};;
      int value=JOptionPane.showConfirmDialog(this, "保存文件吗?", "文本编辑", JOptionPane.YES_NO_CANCEL_OPTION) ;
      JOptionPane.showConfirmDialog(this,msg, "登陆",JOptionPane. OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE) ;
    switch (value) {
        case JOptionPane.YES_OPTION: return saveFile();
        case JOptionPane.NO_OPTION: return true;
        case JOptionPane.CANCEL_OPTION:
        default: return false;
      }
    }
    void updateTitle(){
      String title;
      if (currentFileName == null) {
        title = "未命名文件";
      }else {
        title = currentFileName;
      }
      if(saveNeeded == true){
          title = "* "+title;
      }
      title = "文本编辑器- " + title;
      this.setTitle(title);
    }
    boolean saveFile() {
      if (currentFileName == null) {
        return saveAsFile();
      }
      try{
        File file = new File (currentFileName);
    FileWriter out = new FileWriter(file);
        String text = jTextArea1.getText();
        out.write(text);
        out.close();
        this.saveNeeded = false;
        updateTitle();
        return true;
      }
      catch (IOException e) {
        statusBar.setText("存储"+currentFileName+ "出错");
      }
      return false;
    }
    boolean saveAsFile() {
    this.repaint();
      if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)){
        currentFileName = jFileChooser1.getSelectedFile().getPath();
        this.repaint();
        return saveFile();
      }
      else {
        this.repaint();
        return false;
      }
    }  void document1_changedUpdate(DocumentEvent e) {
         saveNeeded = true;
         updateTitle();  }  void this_ancestorResized(HierarchyEvent e) {  }  void document1_insertUpdate(DocumentEvent e) {
        saveNeeded = true;
    updateTitle();  }  void document1_removeUpdate(DocumentEvent e) {
         saveNeeded = true;
    updateTitle();  }
      void document1_undoableEditHappened(UndoableEditEvent e) {
           edit.addEdit(e.getEdit()) ;
      }
      void jMenuEditCopy_actionPerformed(ActionEvent e) {
        String selText=jTextArea1.getSelectedText();
        if(selText!=null ){
            StringSelection selection=new StringSelection(selText);
            sysClipboard.setContents(selection,null);
         }
      }  void jMenuEditCut_actionPerformed(ActionEvent e) {
        String selText=jTextArea1.getSelectedText();
              if(selText!=null ){
                 StringSelection selection=new StringSelection(selText);
                 sysClipboard.setContents(selection,null);
                 jTextArea1.replaceSelection(" ");
         }
      }
      void jMenuEditUndo_actionPerformed(ActionEvent e) {
        edit.undo();
      }
      void jMenuEditRedo_actionPerformed(ActionEvent e) { 
        edit.redo();
      }
      void jMenuEdit_focusGained(FocusEvent e) { //这里是控制失效的     boolean selFlag=false;
         if(jTextArea1.getSelectedText() !=null){
             selFlag=true;
         }
         jMenuEditCopy.setEnabled(selFlag) ;
         jMenuEditCut.setEnabled(selFlag) ;
         boolean copyedFlag=false;
         if(sysClipboard.getContents(this)!=null){
             copyedFlag=true;
         }
         jMenuEditPaste.setEnabled(copyedFlag);
         jMenuEditUndo.setEnabled(edit.canUndo());
         jMenuEditRedo.setEnabled(edit.canRedo() );
       }  void jMenuEditSelAll_actionPerformed(ActionEvent e) {
         jTextArea1.selectAll();
      }}
      

  3.   

    十一个记事本程序 主要就是一些普通的功能 但在edit菜单下
    undo redo copy cut paste 选项 出现了一些毛病 按理说没有选中字符
    copy cut paste 因该失效的 但却没有还有undo redo 刚开始也应该是灰色的 控制代码如下
    void jMenuEdit_focusGained(FocusEvent e) { //这里是控制失效的     boolean selFlag=false;
         if(jTextArea1.getSelectedText() !=null){
             selFlag=true;
         }
         jMenuEditCopy.setEnabled(selFlag) ;
         jMenuEditCut.setEnabled(selFlag) ;
         boolean copyedFlag=false;
         if(sysClipboard.getContents(this)!=null){
             copyedFlag=true;
         }
         jMenuEditPaste.setEnabled(copyedFlag);
         jMenuEditUndo.setEnabled(edit.canUndo());
         jMenuEditRedo.setEnabled(edit.canRedo() );
       }
    代码没错 但为什么不行啊