📄 mytexteditor.java
字号:
setJMenuBar(tedMenuBar); //设置菜单条 tedMenuBar.getAccessibleContext().setAccessibleName("Ted Menu Bar"); tedMenuBar.getAccessibleContext().setAccessibleDescription("Ted menu bar."); textBox.getDocument().addDocumentListener(new DocumentListener(){ public void insertUpdate(DocumentEvent e){ changed = true; } public void removeUpdate(DocumentEvent e){ changed = true; } public void changedUpdate(DocumentEvent e){ changed = true; } }); } // PopupMenu菜单的 创建方法,由initComponents方法调用, // 完成弹出式菜单的创建和设置 public void createPopupMenu() { JMenuItem menuItem; JSeparator jSeparator1; JPopupMenu popup = new JPopupMenu(); //创建弹出式菜单 menuItem = new JMenuItem("新建"); //创建"新建"菜单项 //"新建"菜单项的监听函数 menuItem.addActionListener(new java.awt.event.ActionListener(){ public void actionPerformed(java.awt.event.ActionEvent evt){ newMenuItemActionPerformed(evt);} }); popup.add(menuItem); //添加"新建"菜单项 menuItem = new JMenuItem("保存"); //创建"保存"菜单项 //"保存"菜单项的监听器的设置 menuItem.addActionListener(new java.awt.event.ActionListener(){ public void actionPerformed(java.awt.event.ActionEvent evt){ saveMenuItemActionPerformed(evt);} }); popup.add(menuItem);//添加"保存"菜单项 jSeparator1 = new JSeparator(); popup.add(jSeparator1); //加入分隔条 menuItem = new JMenuItem("查找"); //创建"查找"菜单项 //"查找"菜单项监听器的设置 menuItem.addActionListener(new java.awt.event.ActionListener(){ public void actionPerformed(java.awt.event.ActionEvent evt){ findMenuItemActionPerformed(evt);} }); popup.add(menuItem); //添加"查找"菜单项 menuItem = new JMenuItem("文字颜色...");//创建"文字颜色"菜单项 //"文字颜色"菜单项监听器的设置 menuItem.addActionListener(new java.awt.event.ActionListener(){ public void actionPerformed(java.awt.event.ActionEvent evt){ FcolorMenuItemActionPerformed(evt);} }); popup.add(menuItem); //添加"文字颜色"菜单项 menuItem = new JMenuItem("背景颜色...");//创建"背景颜色"菜单项 //"背景颜色"菜单项监听器的设置 menuItem.addActionListener(new java.awt.event.ActionListener(){ public void actionPerformed(java.awt.event.ActionEvent evt){ BcolorMenuItemActionPerformed(evt);} }); popup.add(menuItem); //添加"背景颜色"菜单项 //添加 MouseListener 以便右击文本区时,菜单弹出 MouseListener popupListener = new PopupListener(popup); textBox.addMouseListener(popupListener); }//createPopupMenu结束 // 当"文件->保存"菜单项被选择时,saveMenuItemActionPerformed方法被调用来, // 保存当前文件 private void saveMenuItemActionPerformed(java.awt.event.ActionEvent evt) { doSave(fileName); } // 当"设置->文字颜色"菜单被选择时,FcolorMenuItemActionPerformed方法被调用, // 对文本区内的文本的颜色进行设置 private void FcolorMenuItemActionPerformed(java.awt.event.ActionEvent evt) { Color newColor = JColorChooser.showDialog(this,"选择字体颜色",textBox.getForeground()); if (newColor != null) { textBox.setForeground(newColor); } } // 当"设置->文字颜色"菜单被选择时,BcolorMenuItemActionPerformed方法被调用, // 对文本区内的文本的颜色进行设置 private void BcolorMenuItemActionPerformed(java.awt.event.ActionEvent evt) { Color newColor = JColorChooser.showDialog(this,"选择背景颜色",textBox.getBackground()); if (newColor != null) { textBox.setBackground(newColor); } } // 当"文件->退出" 菜单被选择时,exitMenuItemActionPerformed方法被调用, // 关闭当前程序 private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) { int n; Object[] option = { "YES", "NO" }; if(changed == true) { n = JOptionPane.showOptionDialog(null, "你的文件还没有保存,你想现在保存吗?", "保存", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, option, option[0] ); if (n == JOptionPane.YES_OPTION) { doSave(fileName); System.exit(0); } else if (n == JOptionPane.NO_OPTION) { System.exit(0); } } } // 当 "编辑->复制" 菜单被选择时,copyMenuItemActionPerformed方法被调用, // 它把当前选定的文字复制到”剪贴板“ private void copyMenuItemActionPerformed(java.awt.event.ActionEvent evt) { textBox.copy(); } // 当 "编辑->粘贴" 菜单被选择时,pasteMenuItemActionPerformed方法被调用, // 它把”剪贴板“中的文字粘贴到文本区域中 private void pasteMenuItemActionPerformed(java.awt.event.ActionEvent evt) { textBox.paste(); } // 当 "编辑->剪切" 菜单被选择时,copyMenuItemActionPerformed方法被调用, // 它把当前选定的文字剪切到”剪贴板“ private void cutMenuItemActionPerformed(java.awt.event.ActionEvent evt) { textBox.cut(); } // 当 "编辑->查找" 菜单被选择时,findMenuItemActionPerformed方法被调用, // 它创建一个查找对话框,以提供对文件中的字符串的查找 private void findMenuItemActionPerformed(java.awt.event.ActionEvent evt) { new Finder(this, textBox).show(); } // 当 ”帮助->关于“ 菜单被选择时,aboutMenuItemActionPerformed方法被调用 //它显示一个关于帮助信息的对话框 private void aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt) { new About(this).show(); } // 当"文件->另存为" 菜单被选择时,saveAsMenuItemActionPerformed方法被调用 // 它调用doSaveAs方法来实现对文件的保存 private void saveAsMenuItemActionPerformed(java.awt.event.ActionEvent evt) { doSaveAs(); } // 当 "文件->打开"菜单被选择时,openMenuItemActionPerformed方法被调用, // 它会显示一个文件对话框来让用户选择文件编辑 private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt) { int n; Object[] option = { "YES", "NO", "CANCEL" }; FileDialog fileDialog = new FileDialog(this, "Open...", FileDialog.LOAD); if(changed == true) { n = JOptionPane.showOptionDialog(null, "你的文件还没有保存,你想现在保存吗?", "保存", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, option, option[0] ); switch(n) { case JOptionPane.YES_OPTION: doSave(fileName); case JOptionPane.NO_OPTION:{ fileDialog.show(); //显示对话框 if (fileDialog.getFile() == null) { return; } fileName = fileDialog.getDirectory() + File.separator + fileDialog.getFile(); FileInputStream fis = null; String str = null; try { fis = new FileInputStream(fileName); int size = fis.available(); byte[] bytes = new byte [size]; fis.read(bytes); str = new String(bytes); } catch (IOException e) { } finally { try { fis.close(); } catch (IOException e2) { } } if (str != null) { textBox.setText(str); } changed = false; break; } case JOptionPane.CANCEL_OPTION: break; default: } } else { fileDialog.show(); if(fileDialog.getFile() == null) { return; } fileName = fileDialog.getDirectory() + File.separator + fileDialog.getFile(); FileInputStream fis = null; String str = null; try { fis = new FileInputStream(fileName); int size = fis.available(); byte[] bytes = new byte [size]; fis.read(bytes); str = new String(bytes); } catch (IOException e) { } finally { try { fis.close(); } catch (IOException e2) { } } if (str != null) { textBox.setText(str); } changed = false; } } //当 "文件->新建" 菜单被选择时,newMenuItemActionPerformed方法被调用, //如果文本区域中有文字,询问是否保存文件,否则清空文本区域 private void newMenuItemActionPerformed(java.awt.event.ActionEvent evt) { int n; Object[] option = { "YES", "NO", "CANCEL" }; if( changed == true) { n = JOptionPane.showOptionDialog(null, "你的文件还没有保存,你想现在保存吗?", "保存", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, option, option[0] ); switch(n) { case JOptionPane.YES_OPTION:{ doSave(fileName); fileName = ""; textBox.setText(""); break; } case JOptionPane.NO_OPTION:{ fileName = ""; textBox.setText(""); break; } case JOptionPane.CANCEL_OPTION: break; default:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -