如何在数据库中使用ControlsFX TextField.bindAutoCompletion

时间:2019-07-18 16:08:58

标签: javafx-8 controlsfx

我正在创建一个应用程序,我想从数据库中搜索名称。我正在使用ControlsFX.TextFields.bindAutoCompletion()。

我使用了一个ObservableList来绑定我的数据。 这是我的代码。

    @FXML
    private JFXTextField jfautocom;

    private DatabaseHandler datahandler;

final ObservableList<String> auto =FXCollections.observableArrayList();

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        datahandler = DatabaseHandler.getInstance();

    }

@FXML
    private void autocomp(MouseEvent event) 
{ String testName = jfautocom.getText();
        TextFields.bindAutoCompletion(jfautocom, auto);

        try {

            String quy = "SELECT `name` FROM `vendor`";
            ResultSet resultset = datahandler.execQuery(quy);
            while (resultset.next()) {
                testName = resultset.getString("name");
            }

             jfautocom.setText(testName);
                auto.add(testName);

        } catch (SQLException ex) {
            Logger.getLogger(AutocomtestController.class.getName()).log(Level.SEVERE, null, ex);
        }
}

我期望自动补全能够正常工作,它只会给我列中的最后一个值。并复制它。

  1. 我哪里出错了?
  2. 使用观察员名单是否正确?
  3. 这是使用ControlsFX的正确方法提供的'TextFields'类将数据库中的值列表绑定到TextField吗?

0 个答案:

没有答案