2017-07-18 14 views
0

Ich kann meine JavaFX-ComboBox, die ich aus dem Szenen-Generator erstellt habe, nicht auffüllen. Obwohl ich gesucht habe, kann ich keine Lösung für diesen Fehler finden.Kann meine JavaFX-ComboBox nicht füllen

Keines der folgenden Beispiele funktioniert.

@FXML ComboBox ComboStatus; 

@Override 
    public void initialize(URL url, ResourceBundle rbs) {   
     ComboStatus.getItems().addAll("Single","Married"); 
    } 

ObservableList<String> statusList = FXCollections. 
      observableArrayList(
        "Single", 
        "Married" 
    ); 

@FXML ComboBox<String> ComboStatus; 

@Override 
    public void initialize(URL url, ResourceBundle rbs) { 
     // TODO Auto-generated method stub 
     ComboStatus.setItems(statusList); 
    } 

Hilfe würde geschätzt. Hier

+1

Beide Code-Schnipsel korrekt sind: wenn sie nicht arbeiten, haben Sie irgendwo etwas anderes falsch. Erstelle ein [MCVE] und poste es in deiner Frage. –

+1

was ist dein fxml? Der von Ihnen bereitgestellte Code sieht korrekt aus. –

+0

Seltsam. Wenn Sie einen Haltepunkt auf dieser Zeile setzen und im Debug-Modus laufen, wird das Programm dort anhalten? Und wenn Sie dann die Linie ausführen, erhalten Sie irgendwelche Fehler? Wie z.B. die NullPointerExeption, weil der Name der Combobox in Ihrem FXML anders ist? Übrigens. Ich würde lieber comboStatus (mit Kleinbuchstaben 'c' am Anfang) als ComboStatus verwenden. – tomorrow

Antwort

0

ist ein Beispiel für Code, das funktioniert und hoffentlich hilft:

Die Klasse, die Anwendung erweitert:

public class Test extends Application{ 

    public static void main(String[] args) { 
     Application.launch(Test.class, args); 
    } 

    @Override 
    public void start(Stage primaryStage) throws Exception { 
     FXMLLoader loader = new 
      FXMLLoader(Test.class.getResource("/test/MyExample.fxml")); 
     AnchorPane pane = (AnchorPane)loader.load(); 
     Scene scene = new Scene(pane); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 
} 

Die Controller-Klasse:

public class MyExampleController implements Initializable { 

    //I think the problem with your code was that you did not use 
    //ComboBox<String> 
    @FXML 
    private ComboBox<String> cbxStatus; 


    @Override 
    public void initialize(URL url, ResourceBundle rb) { 
     cbxStatus.getItems().addAll("Single", "Married"); 
     //you can make it so that an item is already selected 
     //instead of no item being selected until the user clicks on the box 
     //to select 
     cbxStatus.getSelectionModel().select(0); 
    }  

} 
+0

Danke, aber wenn Sie sich mein zweites Beispiel ansehen, habe ich verwendet. Ich habe es bereits gelöst, wie ich im Kommentarabschnitt des obigen Posts gesagt habe, indem ich ein "Minimal" gemacht habe, oder so nennen sie es. Danke trotzdem. –

Verwandte Themen