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

📄 notepad_frame1.java

📁 这是一个用JAVA编写的文本编辑器,主要实现了部分简单常用的功能.(并且能够实现界面风格的转换).本人发布此源码的原因是为了和所以喜欢JAVA的朋友交流交流有关Swing方面的知识,由于限本人的技术原
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
    
    //新建快捷键设置(Ctrl+N) 
    jMenuFileNew.setAccelerator(javax.swing.KeyStroke.getKeyStroke('N',java.awt.event.KeyEvent.CTRL_MASK, false));
    jMenuFileNew.addActionListener(new Notepad_Frame1_jMenuFileNew_actionAdapter(this));
    jMenuFileSave.setToolTipText("");
    jMenuFileSave.setText("保存");
    jMenuFileSave.setEnabled(false);
    
    //保存快捷键设置(Ctrl+S) 
    jMenuFileSave.setAccelerator(javax.swing.KeyStroke.getKeyStroke('S',java.awt.event.KeyEvent.CTRL_MASK, false));
    jMenuFileSave.addActionListener(new Notepad_Frame1_jMenuFileSave_actionAdapter(this));
    jMenuFileSaveAs.setToolTipText("");
    jMenuFileSaveAs.setText("另存为...");
    jMenuFileSaveAs.setEnabled(false);
    jMenuFileSaveAs.addActionListener(new Notepad_Frame1_jMenuFileSaveAs_actionAdapter(this));
    jMenuPageSetup.setToolTipText("");
    jMenuPageSetup.setText("页面设置...");
    jMenuFilePrint.setToolTipText("");
    jMenuFilePrint.setText("打印...");
    
    //打印快捷键设置(Ctrl+P) 
    jMenuFilePrint.setAccelerator(javax.swing.KeyStroke.getKeyStroke('P',java.awt.event.KeyEvent.CTRL_MASK, false));
    jMenuEdit.setToolTipText("");
    jMenuEdit.setText("编辑");
    jMenuFormat.setToolTipText("");
    jMenuFormat.setText("格式");
    jMenuView.setToolTipText("");
    jMenuView.setText("查看");
    jMenuEditUndo.setToolTipText("");
    jMenuEditUndo.setText("撤消");
    
    //撤消快捷键设置(Ctrl+Z)
    jMenuEditUndo.setAccelerator(javax.swing.KeyStroke.getKeyStroke('Z',java.awt.event.KeyEvent.CTRL_MASK, false));
    jMenuEditCut.setToolTipText("");
    jMenuEditCut.setText("剪切");
    jMenuEditCut.setEnabled(false);
    jMenuEditCut.setAccelerator(javax.swing.KeyStroke.getKeyStroke('X',java.awt.event.KeyEvent.CTRL_MASK, false));
    jMenuEditCut.addActionListener(new Notepad_Frame1_jMenuEditCut_actionAdapter(this));
    jMenuEditCopy.setToolTipText("");
    jMenuEditCopy.setText("复制");
    jMenuEditCopy.setEnabled(false);
    
    //拷贝快捷键设置(Ctrl+C) 
    jMenuEditCopy.setAccelerator(javax.swing.KeyStroke.getKeyStroke('C',java.awt.event.KeyEvent.CTRL_MASK, false));
    jMenuEditCopy.addActionListener(new Notepad_Frame1_jMenuEditCopy_actionAdapter(this));
    jMenuEditPaste.setToolTipText("");
    jMenuEditPaste.setText("粘贴");
    jMenuEditPaste.setEnabled(false);
    
    //粘贴快捷键设置(Ctrl+V)
    jMenuEditPaste.setAccelerator(javax.swing.KeyStroke.getKeyStroke('V',java.awt.event.KeyEvent.CTRL_MASK, false));
    jMenuEditPaste.addActionListener(new Notepad_Frame1_jMenuEditPaste_actionAdapter(this));
    jMenuEditDelete.setText("删除");
    jMenuEditDelete.setEnabled(false);
    jMenuFormatFont.setText("字体...");
    jCheckBoxMenuViewStatusBar.setSelected(true);
    jCheckBoxMenuViewStatusBar.setText("状态栏");
    jCheckBoxMenuViewStatusBar.addActionListener(new Notepad_Frame1_jCheckBoxMenuViewStatusBar_actionAdapter(this));
    jCheckBoxMenuViewToolBar.setSelected(true);
    jCheckBoxMenuViewToolBar.setText("工具栏");
    jCheckBoxMenuViewToolBar.addActionListener(new Notepad_Frame1_jCheckBoxMenuViewToolBar_actionAdapter(this));
    jPanelstatus.setLayout(gridLayout1);
    statusBar.setBorder(BorderFactory.createLoweredBevelBorder());
    statusBarTime.setBorder(BorderFactory.createLoweredBevelBorder());
    statusBarXY.setBorder(BorderFactory.createLoweredBevelBorder());
    statusBarTime.setText("时间:" + time.toLocaleString());
    gridLayout1.setColumns(2);
    jButtonSave.setMaximumSize(new Dimension(28, 28));
    jButtonSave.setMinimumSize(new Dimension(28, 28));
    jButtonSave.setPreferredSize(new Dimension(28, 28));
    jButtonSave.setToolTipText("保存文件(Ctrl+S)");
    jButtonSave.setText("");
    jButtonSave.addActionListener(new Notepad_Frame1_jButtonSave_actionAdapter(this));
    jMenuEditSelectAll.setText("全选");
    jMenuEditSelectAll.setEnabled(false);
    
    //全选??捷??设置(Ctrl+A) 
    jMenuEditSelectAll.setAccelerator(javax.swing.KeyStroke.getKeyStroke('A',java.awt.event.KeyEvent.CTRL_MASK, false));
    jMenuEditSelectAll.addActionListener(new Notepad_Frame1_jMenuEditSelectAll_actionAdapter(this));
    jButtonUndo.setMaximumSize(new Dimension(28, 28));
    jButtonUndo.setMinimumSize(new Dimension(28, 28));
    jButtonUndo.setPreferredSize(new Dimension(28, 28));
    jButtonUndo.setToolTipText("撤消(Ctrl+Z)");
    jButtonUndo.setIcon(imageUndo);
    jButtonRedo.setMaximumSize(new Dimension(28, 28));
    jButtonRedo.setMinimumSize(new Dimension(28, 28));
    jButtonRedo.setPreferredSize(new Dimension(28, 28));
    jButtonRedo.setToolTipText("重做(Ctrl+Y)");
    jButtonRedo.setIcon(imageRedo);
    jButtonCopy.setMaximumSize(new Dimension(28, 28));
    jButtonCopy.setMinimumSize(new Dimension(28, 28));
    jButtonCopy.setPreferredSize(new Dimension(28, 28));
    jButtonCopy.setToolTipText("复制(Ctrl+C)");
    jButtonCopy.setEnabled(false);
    jButtonCopy.setIcon(imageCopy);
    jButtonCopy.addActionListener(new Notepad_Frame1_jButtonCopy_actionAdapter(this));
    jButtonPaste.setMaximumSize(new Dimension(28, 28));
    jButtonPaste.setMinimumSize(new Dimension(28, 28));
    jButtonPaste.setPreferredSize(new Dimension(28, 28));
    jButtonPaste.setToolTipText("粘贴(Ctrl+V)");
    jButtonPaste.setEnabled(false);
    jButtonPaste.setIcon(imagePaste);
    jButtonPaste.addActionListener(new Notepad_Frame1_jButtonPaste_actionAdapter(this));
    jButtonCut.setMaximumSize(new Dimension(28, 28));
    jButtonCut.setMinimumSize(new Dimension(28, 28));
    jButtonCut.setPreferredSize(new Dimension(28, 28));
    jButtonCut.setToolTipText("剪切(Ctrl+X)");
    jButtonCut.setEnabled(false);
    jButtonCut.setIcon(imageCut);
    jButtonCut.addActionListener(new Notepad_Frame1_jButtonCut_actionAdapter(this));
    jMenuWaiGuan.setText("外观样式");
    jRadioButtonMenuJava.setText("JAVA风格");
    jRadioButtonMenuJava.setSelected(true);
    jRadioButtonMenuJava.addActionListener(new Notepad_Frame1_jRadioButtonMenuJava_actionAdapter(this));
    jRadioButtonMenuMotif.setText("Motif风格");
    jRadioButtonMenuMotif.addActionListener(new Notepad_Frame1_jRadioButtonMenuMotif_actionAdapter(this));
    jRadioButtonMenuWindows.setText("Windows风格");
    jRadioButtonMenuWindows.addActionListener(new Notepad_Frame1_jRadioButtonMenuWindows_actionAdapter(this));
    jButtonNew.setMaximumSize(new Dimension(28, 28));
    jButtonNew.setMinimumSize(new Dimension(28, 28));
    jButtonNew.setPreferredSize(new Dimension(28, 28));
    jButtonNew.setIcon(imageNew);
    jButtonNew.setText("");
    jButtonNew.addActionListener(new Notepad_Frame1_jButtonNew_actionAdapter(this));
    jButtonNew.setToolTipText("新建(Ctrl+N)");
    jMenuFind.setText("查找...");
    jMenuFind.setEnabled(false);
    jMenuFind.addActionListener(new Notepad_Frame1_jMenuFind_actionAdapter(this));
    jMenuFindReplace.setText("查找替换...");
    jMenuFindReplace.setEnabled(false);
    jMenuFindReplace.addActionListener(new Notepad_Frame1_jMenuFindReplace_actionAdapter(this));
    jToolBar.add(jButtonNew, null);
    jToolBar.add(jButtonOpen);
    jToolBar.add(jButtonSave);
    jToolBar.add(jButtonClose);
    jToolBar.addSeparator();
    jToolBar.add(jButtonUndo, null);
    jToolBar.add(jButtonRedo, null);
    jToolBar.add(jButtonCopy, null);
    jToolBar.add(jButtonPaste, null);
    jToolBar.add(jButtonCut, null);
    jToolBar.addSeparator();
    jToolBar.add(jButtonHelp);
    jMenuFile.add(jMenuFileNew);
    jMenuFile.add(jMenuFileOpen);
    jMenuFile.add(jMenuFileSave);
    jMenuFile.add(jMenuFileSaveAs);
    jMenuFile.addSeparator();
    jMenuFile.add(jMenuPageSetup);
    jMenuFile.add(jMenuFilePrint);
    jMenuFile.addSeparator();
    jMenuFile.add(jMenuFileExit);
    jMenuHelp.add(jMenuHelpAbout);
    jMenuBar1.add(jMenuFile);
    jMenuBar1.add(jMenuEdit);
    jMenuBar1.add(jMenuFormat);
    jMenuBar1.add(jMenuView);
    jMenuBar1.add(jMenuHelp);
    this.setJMenuBar(jMenuBar1);
    contentPane.add(jToolBar, BorderLayout.NORTH);
    contentPane.add(desktopPane,BorderLayout.CENTER);
    contentPane.add(jPanelstatus, BorderLayout.SOUTH);
    jPanelstatus.add(statusBar, null);
    jPanelstatus.add(statusBarTime, null);
    jPanelstatus.add(statusBarXY, null);
    jMenuEdit.add(jMenuEditUndo);
    jMenuEdit.addSeparator();
    jMenuEdit.add(jMenuEditCut);
    jMenuEdit.add(jMenuEditCopy);
    jMenuEdit.add(jMenuEditPaste);
    jMenuEdit.add(jMenuEditDelete);
    jMenuEdit.addSeparator();
    jMenuEdit.add(jMenuEditSelectAll);
    jMenuFormat.add(jMenuFormatFont);
    jMenuView.add(jMenuWaiGuan);
    jMenuView.add(jMenuFind);
    jMenuView.add(jMenuFindReplace);
    jMenuView.add(jCheckBoxMenuViewStatusBar);
    jMenuView.add(jCheckBoxMenuViewToolBar);
    jMenuWaiGuan.add(jRadioButtonMenuJava);
    jMenuWaiGuan.add(jRadioButtonMenuMotif);
    jMenuWaiGuan.add(jRadioButtonMenuWindows);
  }

  //File | Exit action performed
  public void jMenuFileExit_actionPerformed(ActionEvent e) {
    
    if(vectorFile.isEmpty()) {
      
      // 退出系统 
      System.exit(0);
      
    } else {
      
      int dialogType = 
             JOptionPane.showConfirmDialog(this, "文件是否要保存", "关闭",JOptionPane.YES_NO_OPTION);
      if (dialogType == JOptionPane.YES_OPTION) {
        
        return;
        
      } else {
        
        // 退出系统
        System.exit(0);
      }
    }
  }

  //Help | About action performed
  public void jMenuHelpAbout_actionPerformed(ActionEvent e)
  {
    Notepad_Frame1_AboutBox dlg = new Notepad_Frame1_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.pack();
    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);
    }
  }
  
  protected void jButtonOpen_actionPerformed(ActionEvent e) {
    jMenuFileOpen_actionPerformed(e);
  }

  protected void jButtonHelp_actionPerformed(ActionEvent e) {
    jMenuHelpAbout_actionPerformed(e);
  }

  protected void jButtonClose_actionPerformed(ActionEvent e) {
    jMenuFileExit_actionPerformed(e);
  }

  protected void jMenuFileOpen_actionPerformed(ActionEvent e) {
    
    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.showOpenDialog(Notepad_Frame1.this);
    
    //如果在弹出的对话框中选择yes或ok的场合
    if (returnVal == JFileChooser.APPROVE_OPTION) {
      file = filechooser.getSelectedFile();
      if(file != null) {
        newInteface temp = null;
        Enumeration en = vectorFile.elements();
        
        while (en.hasMoreElements()) {
          temp = (newInteface) en.nextElement();
          if (getFileName(temp.getNewIntefaceTitle()).equals(getFileName(file.toString()))) {
            temp.setJInternalFrameEnabled(file.toString());
            break;
          } else {
            temp = null;
          }
        }
        if (file != null && temp == null) {
          openFile();
        }
      }
    }
  }

  //********************************************************************
  /**
   * 打开文件
   * 
   */
  //********************************************************************
  protected void openFile() {
    
    newInteface temp = new newInteface(this,file.toString(),false);
    
    // 设置打开的文件标记为假 
    temp.setSaveFlag(false);
    
    // 设置子窗口标题栏 
    temp.setNewIntefaceTitle(file.toString());
    
    // 把打开的子窗口加到Vector中 
    vectorFile.addElement(temp);
    
    FileReader in = null;
    try {
      
      in = new FileReader(file);
      int n = 0;
      while ( (n = in.read()) != -1) {
        
        String str = String.valueOf( (char) n);
        temp.insertString(str);
      }
      
    } catch (Exception e) {
      
      e.printStackTrace();
      
    } finally {
      
      if(in != null) {
        try {
          in.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
    
    //将编辑栏下查找菜单消彖为可用 
    jMenuFind.setEnabled(true);
    
    //将编辑栏下查找并替换菜单消彖为可用 
    jMenuFindReplace.setEnabled(true);
    
    //将编辑栏下剪切菜单消彖为可用 
    jMenuEditCut.setEnabled(true);
    
    //将编辑栏下拷贝菜单消彖为可用 
    jMenuEditCopy.setEnabled(true);
    
    //将编辑栏下粘贴菜单消彖为可用 
    jMenuEditPaste.setEnabled(true);
    
    //将编辑栏下全选菜单消彖为可用 
    jMenuEditSelectAll.setEnabled(true);
    
    //将工具栏拷贝按键设为可用 
    jButtonCopy.setEnabled(true);
    
    //将工具栏粘贴按键设为可用
    jButtonPaste.setEnabled(true);
    
    //将工具栏剪切按键设为可用 
    jButtonCut.setEnabled(true);
  }

  //********************************************************************
  /**
   * 当选择保存时
   * 
   */
  //********************************************************************
  protected void saveOption() {
    
    //设置当前可编辑窗口
    setSelectFrame();
    
    if (selectFrame != null) {
      
      File file = new File(selectFrame.getNewIntefaceTitle());
      
      if (selectFrame.saveFlag == true) {
      
        //第一次保存的场合 
        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);
        
        if (returnVal == JFileChooser.APPROVE_OPTION) {
          

⌨️ 快捷键说明

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