javafx 使用自动完成功能与数据库

标签 java javafx javafx-8 javafx-2 controlsfx

我正在尝试对 myy 项目使用 controlfx 自动完成,代码是

TextFields.bindAutoCompletion(
            textField,
            "Hey", "Hello", "Hello World", "Apple", "Cool", "Costa", "Cola", "Coca Cola");

此代码只能在所有列表已知但我正在尝试将其与 mysql 数据库和我使用的代码连接时使用

  try{
       Class.forName("com.mysql.jdbc.Driver");
            Connection con=(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/database","root","root");
            String sql="Select * from table";
           Statement stm=(Statement) con.createStatement();
ResultSet rs=stm.executeQuery(sql);
 TextFields.bindAutoCompletion(
           textfield,""); 
    while(rs.next()){
    TextFields.bindAutoCompletion(
            textfield,rs.getString(2));       
}

        } 
        catch (ClassNotFoundException | SQLException e) {

        }

但我遇到了一个问题,尽管它有多个匹配项,但它在建议框中仅显示 1 项

请帮助我。

谢谢。

最佳答案

在 while 循环中,您将重新绑定(bind)每个结果的结果。因此只有最后的结果获胜。您真正想要的是从 ResultSet 条目创建一个集合或数组,然后在执行查询后将其绑定(bind)一次

关于javafx 使用自动完成功能与数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25120147/

相关文章:

javafx:将属性绑定(bind)在一起并在 TableView 中显示它们

css - 如何只为一个元素保留CSS样式

java - 为什么这个 "line count"程序在 Java 中很慢?使用 MappedByteBuffer

java - 当 socket.close() 抛出 Java 时我能做些什么?

java - 如何在 Eclipse 插件中使用正确版本的 JavaFX?

performance - Android 版 Javafx 的音频性能(MediaPlayer 和 NativeAudioService)

单击并按住鼠标按钮,JavaFX Spinner 更改缓慢

java - 从 JavaFX 2.2 到 JavaFX8

java - 通过单个查询获取最小和最大列值

java - 每 20 秒记录一些信息,仅限 Java 1.4