我正在尝试对 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/