Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在搜索但不需要按钮,JFrame_Java_Database_Swing_Autocomplete_Jframe - Fatal编程技术网

Java 正在搜索但不需要按钮,JFrame

Java 正在搜索但不需要按钮,JFrame,java,database,swing,autocomplete,jframe,Java,Database,Swing,Autocomplete,Jframe,我有一个JFrame,其中有一个表和一个已连接到数据库的搜索。 我想搜索,但不需要按钮。所以,当我开始在textfield中填写姓名时,搜索就会完成。 就像html中的ajax一样。 这可以在java中完成吗?是的,可以在java中使用附加到文本字段的actionListener来完成。请参见此处了解javadocs 这里有一个类似的stackoverflow问题:是的,这可以在Java中使用附加到文本字段的actionListener来完成。请参见此处了解javadocs 这里有一个类似的st

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

是的,可以在java中使用附加到文本字段的actionListener来完成。请参见此处了解javadocs


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

是的,这可以在Java中使用附加到文本字段的actionListener来完成。请参见此处了解javadocs

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

所以,当我开始在textfield中填写姓名时,搜索就会完成

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

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

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

所以,当我开始在textfield中填写姓名时,搜索就会完成

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

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


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

我想您在寻找类似“我想搜索…”的搜索什么?表中当前的数据或数据库本身?我想在数据库中搜索数据并将其显示到Jtable,因此,当我开始在textfield中填充名称时,搜索就会完成。我想您可能需要一个,每次插入、删除或更改字符时,都会触发文档侦听器事件,在这些事件中,只需搜索文本并显示结果,因此,当用户再次键入/删除字符时,将显示较新的结果。我认为您正在寻找类似“我想搜索…”的内容搜索什么?表中当前的数据或数据库本身?我想在数据库中搜索数据并将其显示到Jtable,因此,当我开始在textfield中填充名称时,搜索就会完成。我想您可能需要一个,每次插入、删除或更改字符时,都会触发文档侦听器事件,在这些事件中,只需搜索文本并显示结果,因此当用户再次键入/删除字符时,将显示更新的结果。我也认为这个问题是关于自动完成/装饰的。我也认为这个问题是关于自动完成/装饰的