利用JAVA实现记事本的查找功能
时间: 2023-11-30 20:02:39 浏览: 179
下面是JAVA实现记事本查找功能的代码示例:
```java
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class NotePad extends JFrame implements ActionListener {
JTextField searchField;
JButton searchButton;
JTextArea textArea;
String fileName;
public NotePad() {
createGUI();
}
private void createGUI() {
setTitle("Java记事本");
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container container = getContentPane();
searchField = new JTextField(20);
searchButton = new JButton("查找");
textArea = new JTextArea();
JPanel panel = new JPanel();
panel.add(searchField);
panel.add(searchButton);
container.add(panel, BorderLayout.NORTH);
container.add(new JScrollPane(textArea), BorderLayout.CENTER);
searchButton.addActionListener(this);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == searchButton) {
String searchText = searchField.getText();
if (fileName == null) {
return;
}
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))) {
String line = null;
while ((line = reader.readLine()) != null) {
if (line.contains(searchText)) {
textArea.setText(line);
return;
}
}
textArea.setText("没有找到匹配的内容");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
NotePad notePad = new NotePad();
}
}
```
这个记事本应用程序包括一个文本框用于输入搜索文本,一个查找按钮和一个文本区域用于显示查找结果。当用户单击查找按钮时,程序会打开指定的文件并搜索包含搜索文本的行。如果找到匹配项,该行将显示在文本区域中。否则,文本区域将显示“没有找到匹配的内容”的消息。
阅读全文