JavaFX ChoiceBox Name als Auswahl bei einer Objektliste

Frithjof

Mitglied
Hallo,

ich habe ein kleines Problem, ich möchte eine ChoiceBox mit Inhalten füllen.

Eine Methode liefert mir eine Liste mit Objekten die ich in der Joice anzeigen möchte.

Die Objekte haben die Variabele String name.

Ich kann keine tostring Funktion in der Objektklasse anlegen.
(Weil die Liste aus einem XML Webservice stammt)
Mein Code in der FXML sieht so aus:
Java:
@FXML
  private ChoiceBox<WorkType> joWorktype;

@Override
  public void initialize(URL url, ResourceBundle rb) {
  updateWindowFilds();
   
        ...
       // der Aufruf cm.getAllworkTypes() gibt eine List<WorkType> zurück. 
        joWorktype.setItems(FXCollections.observableArrayList(cm.getAllworkTypes()));
}
Wie kann ich die Liste ändern das einfach das Feld "name" angezeigt wird?

(In einer Späteren Methode lese ich die Liste aus und hole mir das ausgewählte Objekt aus der ChoiceBox.)
Vielen Dank!
 

dzim

Top Contributor
Indem du ihn nicht an die ObservableList anfügst, sondern an die ChoiceBox - die API bezog sich explizit auf die ChoiceBox.
Du könntest so etwas wie das hier machen (ungetestet):
Java:
joWorktype.setConverter(new StringConverter<WorkType> () {
    WorkType fromString(String data) {
        // a string to a WorkType
    }
    String toString(WorkType item) {
        return item.[your-method-name].......
    }
});
 

Frithjof

Mitglied
Hallo,
vielen Dank, ich habe eine ganze weile Gerätselt aber dann habe ich verstanden wie deine Idee funktioniert. Ich habe es getestet und dabei die Sache in Zwei schritten gelösst und eine Hilfsklasse erzeugt.
Kurt:
Java:
public class CaseEditController implements Initializable {

//Die ChoiceBox und Ihr fx:id Feld.
   @FXML
    private ChoiceBox<WorkType> joWorktype;

public void initialize(URL url, ResourceBundle rb) {
    //Hier wird ein Converter erzeugt und dann die Liste übergeben.
    joWorktype.setConverter(new ConverterWorkType());
    joWorktype.getItems().addAll(cm.getAllworkTypes());

}



}
public class ConverterWorkType extends StringConverter<WorkType> {
   


Map<String, WorkType> mapWorkType = new HashMap<String, WorkType>();

@Override
public String toString(WorkType w) {
    mapWorkType.put(w.getName(), w);
    return w.getName();
}

@Override
public WorkType fromString(String s) {
    return mapWorkType.get(s);
}
   
}

Etwas ausführlicher und vlt. Anfängerfreundlicher habe ich es dann nochmal in mein Nozitbuch geschrieben.

Vielen dank für deine Hilfe!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q ChoiceBox Elemente: Sprache ändern AWT, Swing, JavaFX & SWT 7
S ChoiceBox aus ArrayList per setValue() mit Wert belegen funktioniert nicht. AWT, Swing, JavaFX & SWT 0
2 JavaFX die ChoiceBox leitet den String nicht weiter oder es komm zu einem NullPointer AWT, Swing, JavaFX & SWT 8
J Standardwert in Choicebox setzen ? AWT, Swing, JavaFX & SWT 0
B Mit der ChoiceBox-Auswahl Textfelder hinzufügen AWT, Swing, JavaFX & SWT 18
J Choicebox Helperclass in seperaten Package AWT, Swing, JavaFX & SWT 2
R JavaFX Wert einer ChoiceBox bekommen ohne Lambdas AWT, Swing, JavaFX & SWT 11
K JavaFX ChoiceBox befüllen AWT, Swing, JavaFX & SWT 14
G JavaFX ChoiceBox selectFirst IndexOutOfBoundsException AWT, Swing, JavaFX & SWT 7
MiMa File Dateien im ListView als Name anzeigen? AWT, Swing, JavaFX & SWT 6
P Swing JList mit Objekten - Name anzeigen AWT, Swing, JavaFX & SWT 5
L Name des JLabels auslesen bei Mouseclick AWT, Swing, JavaFX & SWT 2
F Swing J(X)Table Spalten umsortieren NUR im View (Wie finde ich eine Spalte nach Name?) AWT, Swing, JavaFX & SWT 3
H Name einer Komponente ermitteln AWT, Swing, JavaFX & SWT 5
J Name von einer Componente AWT, Swing, JavaFX & SWT 3
F name des panels in der ein button liegt rausfinden AWT, Swing, JavaFX & SWT 10
M Name der Komponente? AWT, Swing, JavaFX & SWT 2
I JTree Node Name ändern AWT, Swing, JavaFX & SWT 2
C JButton-Name per ActionEvent rausfinden AWT, Swing, JavaFX & SWT 2
R Name eines Tabs aktualisieren AWT, Swing, JavaFX & SWT 2
Z jLabel.setText("Name: " + x.getName()); --> AWT, Swing, JavaFX & SWT 6
H Dialog Name bei SWT änder AWT, Swing, JavaFX & SWT 5
K Widgetzugriff via zusammengesetzten Name AWT, Swing, JavaFX & SWT 2
R Label mit hochzählpfeil (Name?) AWT, Swing, JavaFX & SWT 2
T Name des Hauptframes ermitteln AWT, Swing, JavaFX & SWT 17
R Name von Feld nicht ereichbar AWT, Swing, JavaFX & SWT 7
K Textarea aktuallisiert sich nicht, nach Auswahl (Itemlistener) AWT, Swing, JavaFX & SWT 3
R Auswahl mehrerer JComboBoxen verknüpfne AWT, Swing, JavaFX & SWT 17
P JavaFX aktuelle Tabellenzeile bei Choice-Box-Auswahl in Zelle ermitteln AWT, Swing, JavaFX & SWT 28
S n aus m - Auswahl AWT, Swing, JavaFX & SWT 2
M Swing JList Auswahl-GUI-Konzept AWT, Swing, JavaFX & SWT 9
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
M Auswahl aus einer ListView AWT, Swing, JavaFX & SWT 3
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
M Combo Box auswahl in eine Datenbank speichern AWT, Swing, JavaFX & SWT 1
M JavaFX Combobox - Item Auswahl mit Tasten AWT, Swing, JavaFX & SWT 8
S JComboBox nach auswahl erneuern AWT, Swing, JavaFX & SWT 4
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
T Importer-Auswahl im JFileChooser AWT, Swing, JavaFX & SWT 3
J AWT choice mit viel Auswahl aktualisiert sich nicht korrekt beim scrollen?! AWT, Swing, JavaFX & SWT 3
I Anhand ButtonGroup eine Auswahl treffen AWT, Swing, JavaFX & SWT 2
P Listener Auswahl Tabelle AWT, Swing, JavaFX & SWT 6
M JComboBox Item-Auswahl in JTable AWT, Swing, JavaFX & SWT 2
M SWT Wie mehr als 5000 Einträge zur Auswahl geben? AWT, Swing, JavaFX & SWT 9
G JComboBox mit CellRenderer (Auswahl) AWT, Swing, JavaFX & SWT 11
N automatische Auswahl einer JComboBox AWT, Swing, JavaFX & SWT 6
E JTree Auswahl AWT, Swing, JavaFX & SWT 2
P Swing Auswahl einer JComboBox für eine andere JComboBox übernehmen AWT, Swing, JavaFX & SWT 4
R JPanel wird erst neu gezeichnet nach erneuter auswahl AWT, Swing, JavaFX & SWT 8
F Swing Auf JComboBox-Event erst NACH Auswahl reagieren AWT, Swing, JavaFX & SWT 8
T Auswahl in GUI-Builder mit Grafiken ausstatten AWT, Swing, JavaFX & SWT 4
M Swing jList Auswahl löschen AWT, Swing, JavaFX & SWT 2
H JTree - nach Auswahl aus JFileChooser wird nur der erste Knoten angezeigt AWT, Swing, JavaFX & SWT 3
U JComboBox: (Vor)auswahl nach Aktualisierung AWT, Swing, JavaFX & SWT 2
Semox Swing JMenuItem-Auswahl mit Aktion ausführen AWT, Swing, JavaFX & SWT 4
C Welche Farbe hat die Auswahl in einer JTable? AWT, Swing, JavaFX & SWT 2
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
S Swing JTable Auswahl mehrerer Zellen mit STRG+Maus AWT, Swing, JavaFX & SWT 3
P verschiedene JPanels einblenden je nach auswahl AWT, Swing, JavaFX & SWT 2
P Speichern und Auswahl gezeichneter Objekte AWT, Swing, JavaFX & SWT 7
K Auswahl einer ButtonGroup erfahren AWT, Swing, JavaFX & SWT 3
G JTextfield Inhalt markieren bei Auswahl AWT, Swing, JavaFX & SWT 2
H Auswahl in JComboBox abbrechen AWT, Swing, JavaFX & SWT 5
K Choice auswahl und String in Int AWT, Swing, JavaFX & SWT 8
DEvent Standard Font-Auswahl-Dialog? AWT, Swing, JavaFX & SWT 15
DEvent Je nach Auswahl in Liste entsprechende Input-Elemente anzeig AWT, Swing, JavaFX & SWT 2
B Relative Pfadangaben beibehalten bei Auswahl in Dialog AWT, Swing, JavaFX & SWT 2
E JComboBox auswahl einschraenken AWT, Swing, JavaFX & SWT 5
G Screen nach Auswahl schließen und neuen öffnen?wie mach ichs AWT, Swing, JavaFX & SWT 8
M JTable mit JCombobox eigene Auswahl pro Zeile ? AWT, Swing, JavaFX & SWT 3
M Farb/bild auswahl AWT, Swing, JavaFX & SWT 15
C Aktion nach Auswahl einer Checkbox AWT, Swing, JavaFX & SWT 6
R Verzeichnis-Auswahl mit FileDialog ? AWT, Swing, JavaFX & SWT 3
G JComboBox nimmt Auswahl nicht an AWT, Swing, JavaFX & SWT 5
N JList: Auswahl erzwingen AWT, Swing, JavaFX & SWT 6
H Doppelte Auswahl bei ItemEvent für eine Dropdownliste AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben