Einen schönen Tag alle miteinander,
mithilfe von Videos und Anleitungen arbeite ich mich gerade in JavaFx ein, bin jedoch jetzt auf einen Fehler(?) gestoßen, der mich ein wenig ratlos zurücklässt. Wie im unten stehenden Code zu sehen ist, habe ich beim testen zwei Buttons zwei verschiedene ActionEvents zugewiesen.
- einer füllt eine ComboBox mit zusätzlichen Items.
- einer füllt eine ListView mit zusätzlichen Items.
Über den Scenebuilder habe ich beiden Buttons die jeweilige void zugewiesen. Starte ich jedoch nun das Programm und drücke einen der beiden Buttons (egal welchen von beiden), wird sowohl der ComboBox, als auch der ListView, die Items zugewiesen.
Ich vermute - da ich mich gerade erst frisch in JavaFx einarbeite - ich irgendwo einen grundlegenden Fehler eingearbeitet habe.
Hat jemand vielleicht eine Idee, wo das Problem liegen könnte?
Vielen Dank für eure Mühen.
Gruß
StepByStepButSlow
mithilfe von Videos und Anleitungen arbeite ich mich gerade in JavaFx ein, bin jedoch jetzt auf einen Fehler(?) gestoßen, der mich ein wenig ratlos zurücklässt. Wie im unten stehenden Code zu sehen ist, habe ich beim testen zwei Buttons zwei verschiedene ActionEvents zugewiesen.
- einer füllt eine ComboBox mit zusätzlichen Items.
- einer füllt eine ListView mit zusätzlichen Items.
Über den Scenebuilder habe ich beiden Buttons die jeweilige void zugewiesen. Starte ich jedoch nun das Programm und drücke einen der beiden Buttons (egal welchen von beiden), wird sowohl der ComboBox, als auch der ListView, die Items zugewiesen.
Java:
package application;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.ListView;
import javafx.scene.control.SelectionMode;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
public class MainController implements Initializable {
@FXML
private TextField tfGet, tfSet;
@FXML
private ComboBox<String> combobox;
@FXML
private ListView<String> listview;
@FXML
private Button btnClick, btnOpenFrame, btnComboBoxAdd, btnListViewAdd, btnListViewItem;
// ---------- GET-/ SET TEXT ----------
@FXML
private void transferText(ActionEvent event) {
if (!tfGet.getText().equals("")) {
tfSet.setText(tfGet.getText());
tfGet.clear();
} else {
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Information Dialog");
alert.setHeaderText(null);
alert.setContentText("You have to type something into the upper TextField!");
alert.showAndWait();
}
}
// ---------- OPEN ANOTHER FRAME ----------
@FXML
private void openAnotherFrame(ActionEvent event) throws Exception {
// open another frame
Stage primaryStage = new Stage();
Parent root = FXMLLoader.load(getClass().getResource("/application/SubframeTest.fxml"));
Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
}
// ---------- COMBOBOX & ListView ----------
ObservableList<String> list = FXCollections.observableArrayList("Mark", "Tom", "John", "Jack");
@Override
// intialize starts when opening the frame
public void initialize(URL location, ResourceBundle resources) {
combobox.setItems(list);
listview.setItems(list);
listview.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
// listview.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
}
@FXML
private void comboChange(ActionEvent event) {
System.out.println("Auswahl aus ComboBox: " + combobox.getValue());
}
@FXML
private void comboAdd(ActionEvent event) {
combobox.getItems().addAll("Rick", "Ben", "Steve", "Oliver");
}
@FXML
private void listviewAdd(ActionEvent event) {
listview.getItems().addAll("Rick", "Ben", "Steve", "Oliver");
}
@FXML
private void listviewGetItemIndex(ActionEvent event) {
int i = listview.getSelectionModel().getSelectedIndex();
System.out.println("Selected Index: " + i);
}
}
Ich vermute - da ich mich gerade erst frisch in JavaFx einarbeite - ich irgendwo einen grundlegenden Fehler eingearbeitet habe.
Hat jemand vielleicht eine Idee, wo das Problem liegen könnte?
Vielen Dank für eure Mühen.
Gruß
StepByStepButSlow