[USER=60069]@Hatsi09[/USER]
also, DataPane ist die zweite, leere VBox in der SplitPane. Im MainController.java stehen die Methoden, um die FXML Files in die DataPane zu laden. Zum Beispiel
[CODE=java]public void kundenTSR(ActionEvent event) throws IOException {
setDataPane(fadeAnimate("/samplefx/view/FXML1.fxml"));
}[/CODE]
Dort werden (im Moment per Button) Daten in eine ComboBox geladen. Das soll möglichst sofort mit dem Laden der FXML1.fxml
passieren. Die Methode dazu:
[CODE=java]
final ObservableList options = FXCollections.observableArrayList();
...
@FXML
private void fillCombo(ActionEvent event) {
Connection conn = null;
try {
Class.forName("org.postgresql.Driver");
conn = DriverManager.getConnection(jhpn, uname, pw);
String sSQL = "SELECT kunden.bem FROM kunden ORDER BY kunden.bem ASC";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sSQL);
while (rs.next()) {
options.add(rs.getString(1));
}
ComboBoxKunden.setItems(options);
ComboBoxKunden.requestFocus();
conn.close();
} catch (ClassNotFoundException | SQLException e) {
JOptionPane.showMessageDialog(null, "Fehler in fillCombo(): " + e);
}
}[/CODE]
Mein letzter Stand ist, dass der Focus nach dem Laden von FXML1 im Feld start ist (Cursor) und ich versuche mit
[CODE=java]
start.focusedProperty().addListener((ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) -> {
focusState(newValue);
});
[/CODE] einen Listener einzufügen, um den Focuserhalt des Feldes zu nutzen, weiß aber nicht so recht, wie man das auswertet, um eine Methode auszuführen. Ist das überhaupt so lösbar?