用户在界面的一个文本框输入一个姓名(可以模糊查询),回车确认或单击“查询”按钮,文本框显示姓名和对应电话信息。
时间: 2024-11-30 12:16:50 浏览: 23
为了实现这个功能,你可以使用Java Swing库来构建用户界面,配合事件监听和数据库操作。以下是步骤概述:
1. **创建GUI**:
- 创建一个窗口(JFrame)作为容器。
- 添加一个`JTextField`(文本框)用于用户输入姓名,设置焦点以便接收键盘输入。
- 添加一个`JButton`(查询按钮),监听`actionPerformed`事件。
2. **事件处理**:
- 给查询按钮添加一个事件处理器,当用户点击时检查文本框的内容。
- 可能需要创建一个`KeyListener`来捕获回车事件。
3. **查询逻辑**:
- 当接收到有效输入(非空字符串或回车键)时,从数据源(可能是数据库、文件或其他存储)查询匹配的姓名和电话信息。
- 可能需要实现一个模糊搜索算法(如Levenshtein距离或正则表达式)来处理部分匹配。
4. **结果显示**:
- 查询结果应展示在窗口中的另一个`JLabel`或`JTable`上,包括姓名和电话号码。
下面是一个简单的示例代码片段,展示了如何创建窗口并绑定查询按钮的事件处理:
```java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
public class NameSearch extends JFrame {
private JTextField textField;
private JButton queryButton;
public NameSearch() {
// 设置窗口属性
setTitle("Name Search");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
// 创建组件
textField = new JTextField();
queryButton = new JButton("查询");
// 添加组件到窗口
JPanel panel = new JPanel();
panel.add(textField);
panel.add(queryButton);
add(panel);
// 事件处理
queryButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String input = textField.getText();
if (!input.isEmpty()) { // 模糊查询逻辑在这里
// 执行查询,获取电话信息并更新UI
}
}
});
// 键盘监听
textField.registerKeyboardAction(e -> {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
String input = textField.getText();
if (!input.isEmpty()) {
// 同样在这里处理回车查询
}
}
}, KeyEvents.KEY_PRESSED, JComponent.WHEN_IN_FOCUSED_WINDOW);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(NameSearch::new);
}
}
```
注意:这只是一个基础框架,你需要根据实际需求填充模糊查询和数据访问逻辑。此外,对于数据库查询,通常会使用`PreparedStatement`来避免SQL注入攻击。
阅读全文