📄 finder.java
字号:
package mytexteditor.texteditor; // 查找对话框类,实现在text文档中的查找相应的文本串的位置,// 查找成功,返回文本串在文件中的位置;不成功,则什么也不做public class Finder extends javax.swing.JDialog { //查找对话框类的构造器 public Finder(java.awt.Frame parent, javax.swing.JTextArea textEditor) { super(parent, true); this.textEditor = textEditor; initComponents(); pack(); setLocationRelativeTo(parent); findField.requestFocus(); } //initComponents 方法由constructor调用, // 对对话框的GUI组件进行初始化; private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; //创建装载标签findLabel和文本域findField的findPanel 对象 findPanel = new javax.swing.JPanel(); findLabel = new javax.swing.JLabel(); //创建标签findLabel对象 findField = new javax.swing.JTextField(); //创建文本域findField对象 buttonPanel = new javax.swing.JPanel(); //创建装载按钮的buttonPanel 对象 findButton = new javax.swing.JButton(); //创建findButton对象 closeButton = new javax.swing.JButton(); //创建closeButton对象 //设置内容板的布局为GridBagLayout getContentPane().setLayout(new java.awt.GridBagLayout()); setTitle("查找"); //设置对话框的标题 //设置窗口的监听器 addWindowListener(new java.awt.event.WindowAdapter(){ public void windowClosing(java.awt.event.WindowEvent evt){ closeDialog(evt);} }); getAccessibleContext().setAccessibleName("Find Dialog"); getAccessibleContext().setAccessibleDescription("Find dialog."); //设置的findPanel的布局为GridBagLayout findPanel.setLayout(new java.awt.GridBagLayout()); findLabel.setLabelFor(findField); //关联findLabel和findField findLabel.setText("查找内容:"); //设置findLabel的标题 // 添加findLabel到findPane1 findPanel.add(findLabel, new java.awt.GridBagConstraints()); findLabel.getAccessibleContext().setAccessibleDescription("Find text."); //添加findField的动作监听器 findField.addActionListener(new java.awt.event.ActionListener(){ public void actionPerformed(java.awt.event.ActionEvent evt){ findFieldActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0); findPanel.add(findField, gridBagConstraints); findField.getAccessibleContext().setAccessibleName("Find Field"); findField.getAccessibleContext().setAccessibleDescription("Find field."); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.insets = new java.awt.Insets(11, 12, 0, 11); getContentPane().add(findPanel, gridBagConstraints); buttonPanel.setLayout(new java.awt.GridBagLayout()); findButton.setMnemonic('f'); findButton.setText("查找"); findButton.addActionListener(new java.awt.event.ActionListener(){ public void actionPerformed(java.awt.event.ActionEvent evt){ findButtonActionPerformed(evt); } }); buttonPanel.add(findButton, new java.awt.GridBagConstraints()); closeButton.setMnemonic('c'); closeButton.setText("关闭"); closeButton.addActionListener(new java.awt.event.ActionListener(){ public void actionPerformed(java.awt.event.ActionEvent evt){ closeButtonActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0); buttonPanel.add(closeButton, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST; gridBagConstraints.insets = new java.awt.Insets(17, 12, 11, 11); getContentPane().add(buttonPanel, gridBagConstraints); }//initComponents结束 // 当文本框中输入回车键时,findFieldActionPerformed被调用, // 如果文本框中有文件,就调用Find button的响应方法, // 否则什么也不做; private void findFieldActionPerformed(java.awt.event.ActionEvent evt) { if (findField.getText().trim().length() > 0) { findButton.doClick(); } } // 当find botton(查找按钮) 被按下的时候,调用此方法 // 如果输入的字符在文件中能够找到,则定位于文件中该字 // 符串出现的地方,否则什么也不做 private void findButtonActionPerformed(java.awt.event.ActionEvent evt) { String text = textEditor.getText(); String textToFind = findField.getText(); if (!"".equals(textToFind)) { int index = text.indexOf(textToFind); if (index != -1) { textEditor.setCaretPosition(index); closeDialog(null); } else { java.awt.Toolkit.getDefaultToolkit().beep(); } } } // 当close button(关闭)被按下时,closeButtonActionPerformed方法被调用, // 它调用closeDialog方法,实现对话框的"关闭" private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) { closeDialog(null); } // 当对话框被关闭时,closeDialog法被调用,隐藏对话框 private void closeDialog(java.awt.event.WindowEvent evt) { setVisible(false); dispose(); } // 对话框类成员变量定义开始 private javax.swing.JPanel buttonPanel; private javax.swing.JButton closeButton; private javax.swing.JButton findButton; private javax.swing.JTextField findField; private javax.swing.JLabel findLabel; private javax.swing.JPanel findPanel; private javax.swing.JTextArea textEditor;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -