Я только начинающий, когда дело доходит до программирования или Java.
Поэтому для начала я планировал создать окно, использующее JavaFX (в сочетании с компоновщиком сцен), где у меня есть кнопка, которая ведет меня в другое окно, где у меня есть выпадающий список. Я часами гуглял, чтобы найти способ заполнить этот комбобокс выбором, но все найденные мной решения не работают для меня. Вот почему я думаю, что допустил здесь некоторые ошибки и надеюсь, что вы мне как-то поможете. Или в списке дать мне подсказку, что я должен изучить / прочитать, чтобы найти решение самостоятельно.
Итак, для начала, вот мой main.java-код, где я строю свой первый этап.
main.java:
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
Parent root= FXMLLoader.load(getClass().getResource("Scene-Hauptmenu.fxml"));
primaryStage.setTitle("Fishbase");
primaryStage.sizeToScene();
primaryStage.setResizable(false);
primaryStage.setScene(new Scene(root));
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
В моем "Scene-Hauptmenu.fxml" все, что имеет значение, это кнопка, которая ведет меня ко второму окну:
Сцена-Hauptmenu.fxml:
<Button id="btn_gefangen" fx:id="btn_gefangen" mnemonicParsing="false" onAction="#gefangen" text="Ich habe Fische gefangen!" GridPane.rowIndex="1" />
Пока все работает нормально, и я могу без проблем переключиться на второе окно. Но я думаю, что моя основная проблема заключается в моем классе контроллера, так что вот оно.
MyController.java:
public class MyController implements Initializable{
private Node node;
private Stage stage;
private Scene scene;
private FXMLLoader fxmlLoader;
private Parent root;
@FXML
private Button btn_gefangen;
@FXML
private ComboBox<String> chobo_fisch;
@FXML
private Button btn_gefangen_zurueck;
@Override
public void initialize(URL location, ResourceBundle resources) {
}
public void gefangen(ActionEvent event) throws IOException{
node = (Node) event.getSource();
stage = (Stage) node.getScene().getWindow();
scene = stage.getScene();
fxmlLoader = new FXMLLoader (getClass().getResource("gefangen.fxml"));
root = (Parent) fxmlLoader.load();
scene.setRoot(root);
stage.sizeToScene();
stage.setTitle("Fische eintragen");
}
public void gefangen_zurueck(ActionEvent event) throws IOException{
node = (Node) event.getSource();
stage = (Stage) node.getScene().getWindow();
scene = stage.getScene();
fxmlLoader = new FXMLLoader (getClass().getResource("Scene-Hauptmenu.fxml"));
root = (Parent) fxmlLoader.load();
scene.setRoot(root);
stage.sizeToScene();
stage.setTitle("Fishbase");
}
}
Таким образом, кнопка "btn_gefangen" ведет меня к тому другому окну, где у меня есть выпадающий список с fx: id "chobo_fisch".
gefangen.fxml:
<ComboBox fx:id="chobo_Fisch" prefWidth="150.0"/>
Так что я часами гуглял, но все еще не нашел никакого решения, чтобы заполнить комбинированный список вариантами, которые работают с моим кодом. Что я сделал не так? Кто-нибудь может мне здесь помочь?
С наилучшими пожеланиями
Jannik