Dies ist die Klasse UserController.java.Ich bin nicht in der Lage, Benutzername aus der Datenbank in JavaFX Combobox laden
public ObservableList<UserModelItem> options = FXCollections.observableArrayList();
@FXML
private ComboBox<UserModelItem> combo;
This is the UserModelItem.java.class
public static class UserModelItem{
private final SimpleStringProperty username;
public UserModelItem(String user){
super();
this.username = new SimpleStringProperty(user);
}
public String getUsername() {
return username.get();
}
public void setUsername(String uname){
username2.set(uname);
}
}
Dies ist die Methode Initialize in UserController.java.class
public void initialize(URL location, ResourceBundle resources) {
combo.setItems(options);
}
Dies dies der FXML Bezug auf die ComboBox-
<ComboBox fx:id="combo" layoutX="131.0" layoutY="377.0" onAction="#fillComboBox" prefWidth="150.0" />
Diese fillComboBox() -Funktion ComboBox zugeordnet ist mit fx: id combo über SceneBuilder zusammen mit der UserController-Klasse.
public void fillComboBox(ActionEvent event){
try{
Connection connect = SqLiteConnection.Connector();
String query = "select username from employee";
PreparedStatement ps = connect.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while(rs.next()){
options.add(new UserModelItem(rs.getString("username")));
}
ps.close();
rs.close();
}catch(Exception e){
e.printStackTrace();
}
}
Dies ist die Funktion ObservableList zu konvertieren String-
combo.setConverter(new StringConverter<UserModelItem>() {
@Override
public String toString(UserModelItem object) {
return object.getUsername();
}
@Override
public UserModelItem fromString(String string) {
// TODO Auto-generated method stub
return null;
}
});
}
ich die meisten Antworten auf Stackoverflow und mein Code ist identisch geprüft haben, die noch nicht in der Lage, die ComboBox aufzufüllen ich bin.
Bitte bearbeiten Sie Ihre Frage und fügen Sie das Element Ihrer FXML-Datei ein, das sich auf 'fillComboBox' bezieht. – VGR
@VGR Ich habe die FXML-Referenz zur Combobox hinzugefügt. Bitte überprüfen Sie –