有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java搜索,但不需要按钮JFrame

我有一个JFrame,其中有一个表和一个已连接到数据库的搜索。 我想搜索,但不需要按钮。所以,当我开始在textfield中填写姓名时,搜索就会完成。 比如html中的ajax。 这可以用java实现吗


共 (2) 个答案

  1. # 1 楼答案

    So, the search will be done right when I started to fill the name in textfield

    您可以通过将DocumentListener附加到JTextFieldDocument来对所有输入做出反应。每次用户向文本字段提供输入时(无论是通过键入、拖放、复制粘贴等方式),都会通知该侦听器

    不过,关键是你想在用户输入上做什么。事件调度线程上会触发DocumentListener,此线程不应被长时间运行的操作阻塞,否则UI将冻结。执行数据库查询被视为“长时间运行的操作”。这意味着您必须确保在后台线程上执行搜索。搜索完成后,可以更新表,这必须在事件调度线程上完成。在这种情况下,SwingWorker类可能很有用。有关线程规则的更多信息,请参见this tutorial

    第二个问题是,当提供新的输入时,您可能想取消以前的搜索。很可能用户的输入速度比查询数据库的速度快,并用结果填充JTable(假设网络连接没有那么快)

  2. # 2 楼答案

    是的,这可以在Java中使用连接到文本字段的actionListener来完成。参见此处获取actionListenerjavadocs

    这里有一个类似的stackoverflow问题:link