⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 notepad_frame1.java

📁 这是一个用JAVA编写的文本编辑器,主要实现了部分简单常用的功能.(并且能够实现界面风格的转换).本人发布此源码的原因是为了和所以喜欢JAVA的朋友交流交流有关Swing方面的知识,由于限本人的技术原
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
          //如果在弹出的对话框中选择yes或ok的场合
          file = filechooser.getSelectedFile();
          saveFile(file);
          selectFrame.setTitle(getFileName(file.toString()));/////////
          jMenuFileSave.setEnabled(false);
          jMenuFileSaveAs.setEnabled(false);
          jButtonSave.setEnabled(false);
        }
      } else {
        
        //不是第一次保存的场合 
        saveFile(file);
        jMenuFileSave.setEnabled(false);
        jMenuFileSaveAs.setEnabled(false);
        jButtonSave.setEnabled(false);
      }
    }
  }

  protected void jMenuFileSave_actionPerformed(ActionEvent e) {
    saveOption();
  }

  protected void jMenuFileSaveAs_actionPerformed(ActionEvent e) {
    
    File file = null;
    try {
      
      UIManager.setLookAndFeel(currentLookAndFeel);
      
    } catch (Exception e1) {
      
      e1.printStackTrace();
    }
    
    JFileChooser filechooser = new JFileChooser();
    filechooser.setSelectedFile(file);
    filechooser.addChoosableFileFilter(new JavaFileFilter("jsp"));
    filechooser.addChoosableFileFilter(new JavaFileFilter("html"));
    filechooser.addChoosableFileFilter(new JavaFileFilter("txt"));
    filechooser.addChoosableFileFilter(new JavaFileFilter("java"));
    filechooser.setFileView(new FileIcon());
    int returnVal = filechooser.showSaveDialog(Notepad_Frame1.this);
    
    //如果在弹出的对话框中选择yes或ok的场合
    if (returnVal == JFileChooser.APPROVE_OPTION) {
      file = filechooser.getSelectedFile();
      saveFile(file);
    }
  }

  //********************************************************************
  /**
   * 当选择保存时
   * 
   * @param file 要保存的文件
   */
  //********************************************************************
  protected void saveFile(File file) {
    
    FileWriter out = null;
    BufferedWriter bufOut = null;
    
    try {
      
      out = new FileWriter(file);
      bufOut = new BufferedWriter(out);
      
      //设置当前可编辑窗口
      setSelectFrame();
      
System.out.println(selectFrame.getNewIntefaceTitle());
      
      if(selectFrame != null) {
        bufOut.write(selectFrame.jTextPane.getText());
        bufOut.flush();
      }
      
    } catch (Exception e) {
      
      e.printStackTrace();
      
    } finally {
      
      if(bufOut != null) {
        try {
          
          bufOut.close();
          
        } catch(Exception e) {
          
          e.printStackTrace();
        }
      }
      
      if(out != null) {
        try {
          
          out.close();
          
        } catch(Exception e) {
          
          e.printStackTrace();
          
        }
      }
    }
    
    //把此子窗口设置为不是第一次保存
    selectFrame.saveFlag = false;
    
    //把此子窗口设置为没有改变
    selectFrame.setChanageTextPane(false);
  }
  
  //********************************************************************
  /**
   * 获取文件名
   * 
   * @param str 带路径的文件名
   * @return  去掉路径后的文件名
   */
  //********************************************************************
  private String getFileName(String str) {
    int post;
    post = str.lastIndexOf("\\",str.length());
    return str.substring(post+1);
  }

  protected void jMenuEditSelectAll_actionPerformed(ActionEvent e) {
    
    //设置当前可编辑窗口
    setSelectFrame();
    
    if(selectFrame != null) {
      selectFrame.jTextPane.selectAll();
    }
  }

  protected void jCheckBoxMenuViewStatusBar_actionPerformed(ActionEvent e) {
    
    if (jCheckBoxMenuViewStatusBar.isSelected()) {
      
      jPanelstatus.setVisible(true);
      
    } else {
      
      jPanelstatus.setVisible(false);
    }
  }

  protected void jCheckBoxMenuViewToolBar_actionPerformed(ActionEvent e) {
    
    if (jCheckBoxMenuViewToolBar.isSelected()) {
      jToolBar.setVisible(true);
    } else {
      jToolBar.setVisible(false);
    }
  }

  protected void jButtonSave_actionPerformed(ActionEvent e) {
    
    jMenuFileSave_actionPerformed(e);
  }

  //********************************************************************
  /**
   * 新建文件事件
   * 
   * @param argEvent ActionEvent
   * 
   */
  //********************************************************************
  protected void jMenuFileNew_actionPerformed(ActionEvent argEvent) {
    
    file = null;
    String title = "未标题"+count++;
    newInteface temp = new newInteface(this,title,true);
    temp.setNewIntefaceTitle(title);
    temp.setChanageTextPane(false);
    vectorFile.addElement(temp);
    jMenuFileSave.setEnabled(true);
    jMenuFileSaveAs.setEnabled(true);
    jButtonSave.setEnabled(true);
    jMenuFind.setEnabled(true);
    jMenuFindReplace.setEnabled(true);
    jButtonCopy.setEnabled(true);
    jButtonPaste.setEnabled(true);
    jButtonCut.setEnabled(true);
    jMenuEditCut.setEnabled(true);
    jMenuEditCopy.setEnabled(true);
    jMenuEditPaste.setEnabled(true);
    jMenuEditSelectAll.setEnabled(true);
  }

  //********************************************************************
  /**
   * 把当前可编辑窗口赋给select
   * 
   */
  //********************************************************************
  private void setSelectFrame() {
    
    newInteface temp = null;
    Enumeration en = vectorFile.elements();
    while(en.hasMoreElements()) {
      temp = (newInteface) en.nextElement();
      temp.setSelectTitle();
      if(temp.getNewIntefaceTitle().equals(newInteface.TITLE)) {
        selectFrame = temp;
      }
    }
  }

  void removeClose(String title) {
    newInteface temp = null;
    Enumeration en = vectorFile.elements();
    while(en.hasMoreElements()) {
      temp = (newInteface) en.nextElement();
      if(temp.getNewIntefaceTitle().equals(title)) {
        selectFrame = temp;
      }
    }
    temp.removeClose(title);
    vectorFile.removeElement(selectFrame);
  }

  void jMenuEditCut_actionPerformed(ActionEvent e) {
    setSelectFrame();
    if(selectFrame != null) {
      selectFrame.jMenuPopCut_actionPerformed(e);
    }
  }

  //返回当前可编辑窗口
  newInteface getSelectFrame() {
    setSelectFrame();
    return selectFrame;
  }

  void jMenuEditCopy_actionPerformed(ActionEvent e) {
    setSelectFrame();
    if(selectFrame != null) {
      selectFrame.jMenuPopCopy_actionPerformed(e);
    }
  }

  void jMenuEditPaste_actionPerformed(ActionEvent e) {
    setSelectFrame();
    if(selectFrame != null) {
      selectFrame.jMenuPopPaste_actionPerformed(e);
    }
  }

  void jButtonCopy_actionPerformed(ActionEvent e) {
    jMenuEditCopy_actionPerformed(e);
  }

  void jButtonPaste_actionPerformed(ActionEvent e) {
    jMenuEditPaste_actionPerformed(e);
  }

  void jButtonCut_actionPerformed(ActionEvent e) {
    jMenuEditCut_actionPerformed(e);
  }

  void jRadioButtonMenuJava_actionPerformed(ActionEvent e) {
     if (jRadioButtonMenuJava.isSelected() == true) {
       currentLookAndFeel = metal;
       jRadioButtonMenuMotif.setSelected(false);
       jRadioButtonMenuWindows.setSelected(false);
       setLook(currentLookAndFeel);
     }
  }

  void jRadioButtonMenuMotif_actionPerformed(ActionEvent e) {
    if(jRadioButtonMenuMotif.isSelected() == true) {
      currentLookAndFeel = motif;
      jRadioButtonMenuJava.setSelected(false);
      jRadioButtonMenuWindows.setSelected(false);
      setLook(currentLookAndFeel);
    }
  }

  void jRadioButtonMenuWindows_actionPerformed(ActionEvent e) {
    if(jRadioButtonMenuWindows.isSelected() == true) {
      currentLookAndFeel = windows;
      jRadioButtonMenuJava.setSelected(false);
      jRadioButtonMenuMotif.setSelected(false);
      setLook(currentLookAndFeel);
    }
  }

  void setLook(String temp) {
    
    try {
      
      UIManager.setLookAndFeel(temp);
      SwingUtilities.updateComponentTreeUI(this);
      
    } catch(Exception e) {
      
      e.printStackTrace();
    }
  }

  void jButtonNew_actionPerformed(ActionEvent e) {
    
    jMenuFileNew_actionPerformed(e);
  }

  void jMenuFind_actionPerformed(ActionEvent e) {
    
    DialogFind find = new DialogFind(this,"查找",true);
    Dimension frmSize = getSize();
    Point loc = getLocation();
    find.setLocation( (frmSize.width - 400) / 2 + loc.x,
                    (frmSize.height - 160) / 2 + loc.y);
    find.pack();
    find.setSize(400,160);
    find.show();
  }

  void jMenuFindReplace_actionPerformed(ActionEvent e) {
    
    DialogFindAndReplace findReplace = new DialogFindAndReplace(this,"查找替换",true);
    Dimension  frmSize = getSize();
    Point loc = getLocation();
    findReplace.setLocation((frmSize.width-400) / 2 + loc.x,
                            (frmSize.height - 230) / 2 + loc.y);
    findReplace.pack();
    findReplace.setSize(400,230);
    findReplace.show();
  }
}

//**********************************************************************
/**
 * <p>Title: </p>
 * <p>Description: 编辑器主窗口</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */
//**********************************************************************
class Notepad_Frame1_jMenuFileExit_ActionAdapter implements ActionListener {
  
  Notepad_Frame1 adaptee;

  Notepad_Frame1_jMenuFileExit_ActionAdapter(Notepad_Frame1 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuFileExit_actionPerformed(e);
  }
}

class Notepad_Frame1_jMenuHelpAbout_ActionAdapter implements ActionListener {
  Notepad_Frame1 adaptee;

  Notepad_Frame1_jMenuHelpAbout_ActionAdapter(Notepad_Frame1 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuHelpAbout_actionPerformed(e);
  }
}

class Notepad_Frame1_jButtonOpen_actionAdapter implements ActionListener {
  Notepad_Frame1 adaptee;

  Notepad_Frame1_jButtonOpen_actionAdapter(Notepad_Frame1 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jButtonOpen_actionPerformed(e);
  }
}

class Notepad_Frame1_jButtonHelp_actionAdapter implements ActionListener {
  Notepad_Frame1 adaptee;

  Notepad_Frame1_jButtonHelp_actionAdapter(Notepad_Frame1 adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jButtonHelp_actionPerformed(e);
  }
}

class Notepad_Frame1_jButtonClose_actionAdapter implements ActionListener {
  Notepad_Frame1 adaptee;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -