JavaFX ComboBox

Doppel

Doppel

Neues Mitglied
Hallo,

ich soll für eine Aufgabe eine GUI schreiben die Countries anzeigt. Hierzu habe ich einen Datentyp "Country" der aus verschiedenen Strings und long-Zahlen besteht. Die Auswahl des jeweiligen Landes soll über eine ComboBox geschehen die Countries als Datentyp hat. Die ComboBox soll/muss nicht editierbar sein und soll nur den Namen der entsprechenden Objekte anzeigen die über die Methode country.getName(); abgerufen werden kann.

Das Problem ist hierbei, dass das natürlich nicht so einfach geht, da die ComboBox explizit den Datentyp country haben MUSS. Erstelle ich also bspw. eine ObservableList mit dem Datentyp String und übergebe diese der ComboBox mit .setItems(); habe ich einen Type mismatch. Genauso sieht es bei .setValue(); aus. Wenn ich aber jeweils einfach nur eine ObservableList vom Datentyp Country für .setItems(); bzw. eine Country in .setValue(); angebe bekomme ich nur Kauderwelsch als Hex-String.

In der Aufgabenstellung steht man solle nachsehen wie der Standard-StringConverter von ComboBox funktioniert und eine entsprechende Methode in der Country-Klasse implementieren. Leider finde ich hierzu nichts wenn ich danach suche, sondern lediglich Dinge wie man vorgeht wenn man eine editable ComboBox hat (was hier gar nicht vorgesehen ist). Falls jemand weiß welche Funktion gemeint ist und mir einen Link zur Doku schicken kann oder mir sonstwie Tipps geben kann wäre ich sehr dankbar.


Country-Class:
public class Country
{
    private String name;

    private String capital;

    private long people;

    private long area;

    private long density;

    //Einfacher Konstruktor
    public Country(String name, String capital, long people, long area)
    {
        this.name = name;
        this.capital = capital;
        this.people = people;
        this.area = area;
        this.density = people / area;
    }

   //Um eine erste Liste als init-Wert zu erzeugen und um die Oberfläche testen zu können
   public static ObservableList<Country> getList()
    {
        Country belgien = new Country("Belgien", "Brüssel", 10839905, 30528);
        Country luxemburg = new Country("Luxemburg", "Luxemburg", 511840, 2586);
        Country kanada = new Country("Kanada", "Ottawa", 34278406, 9984670);
        ObservableList<Country> list = FXCollections.observableArrayList(belgien, kanada, luxemburg);
        return list;
    }
}

Country-Controller:
public class CountryController
{
    //Die Liste in den Controller laden
    private ObservableList<Country> countries = Country.getList();

    @FXML
    private ComboBox<Country> countrySelector;
    //@FXML
    //...
    //andere Komponenten
    @FXML
    private void initialize()
    {
        //So muss ich es leider machen mit countries als Datentyp
        countrySelector.setItems(countries);
        countrySelector.setValue(countries.get(0));
        
        //So würde ich es gerne machen
        
        //ObservableList<String> countryNames = FXCollections.observableArrayList();
        //for(int i=0; i<countries.size();i++)
        //{
        //    countryNames.add(countries.get(i).getName());
        //}
        //countrySelector.setItems(countryNames);
        //countrySelector.setValue(countries.get(0).getName);
        
        //Wie gesagt, ich MUSS Country als Datentyp für die Checkbox verwenden.
    }
 
Doppel

Doppel

Neues Mitglied
Danke für den Tipp, ich wurde Gott sei Dank schon fündig. Es geht sehr einfach, weil man die toString-Methode der ComboBox überschreiben kann. In seiner Country-Methode kann man einfach folgende Methode einfügen und dann geht es ohne sonstige Änderungen am Code:

toString:
@Override
public String toString()
{
    return this.getName();
}

In getName steht einfach nur ein normaler getter den ich vorhin einfach weggelassen habe:

getName:
public String getName()
{
    return name;
}
 
L

lam_tr

Top Contributor
Danke für den Tipp, ich wurde Gott sei Dank schon fündig. Es geht sehr einfach, weil man die toString-Methode der ComboBox überschreiben kann. In seiner Country-Methode kann man einfach folgende Methode einfügen und dann geht es ohne sonstige Änderungen am Code:

toString:
@Override
public String toString()
{
    return this.getName();
}

In getName steht einfach nur ein normaler getter den ich vorhin einfach weggelassen habe:

getName:
public String getName()
{
    return name;
}
Ja stimmt so geht es auch.
 
N

nieselfriem

Bekanntes Mitglied
Danke für den Tipp, ich wurde Gott sei Dank schon fündig. Es geht sehr einfach, weil man die toString-Methode der ComboBox überschreiben kann. In seiner Country-Methode kann man einfach folgende Methode einfügen und dann geht es ohne sonstige Änderungen am Code:

toString:
@Override
public String toString()
{
    return this.getName();
}

In getName steht einfach nur ein normaler getter den ich vorhin einfach weggelassen habe:

getName:
public String getName()
{
    return name;
}
Kannst du bitte mal den Link zeigen, wo du fündig geworden bis? ich stehe gerade vor dem gleichen Problem ;)

VG
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Promt Text der Combobox AWT, Swing, JavaFX & SWT 0
P JavaFX ClassCastException bei ComboBox.getValue AWT, Swing, JavaFX & SWT 4
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 1
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
M Combobox bild anklicken AWT, Swing, JavaFX & SWT 2
L JavaFX Wiederspenstige ComboBox AWT, Swing, JavaFX & SWT 0
P Combobox und Enum AWT, Swing, JavaFX & SWT 3
L ComboBox Wert automatisch auswählen AWT, Swing, JavaFX & SWT 6
L Methode zum Füllen einer ComboBox AWT, Swing, JavaFX & SWT 4
K Nullpointer Combobox Listener AWT, Swing, JavaFX & SWT 2
K JavaFX Combobox, Textfield & setOnMouseClicked AWT, Swing, JavaFX & SWT 2
it_is_all Swing Button, ComboBox,... -- Unterschied: NetBeans Design <-> Ausführung AWT, Swing, JavaFX & SWT 2
D JavaFX ComboBox String setzen AWT, Swing, JavaFX & SWT 20
offi Combobox in TableCell AWT, Swing, JavaFX & SWT 1
D Javafx Combobox Abfrage aus mysql AWT, Swing, JavaFX & SWT 8
K Event Handling ComboBox Event Handler AWT, Swing, JavaFX & SWT 7
MrSnake ComboBox-Einträge werden unsichtbar AWT, Swing, JavaFX & SWT 0
L ComboBox: slider positionieren AWT, Swing, JavaFX & SWT 0
M JavaFX ComboBox: Update zur Laufzeit AWT, Swing, JavaFX & SWT 16
M JavaFX Combobox bindBidirectional AWT, Swing, JavaFX & SWT 4
D [Anfänger]ComboBox erstellt Einträge in einer anderen ComboBox AWT, Swing, JavaFX & SWT 3
T JavaFX Editable Combobox Text-Selektierung nach Trigger AWT, Swing, JavaFX & SWT 4
H Combobox aktualisieren AWT, Swing, JavaFX & SWT 2
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
M JavaFX ComboBox AWT, Swing, JavaFX & SWT 5
T Problem: ComboBox und addItem AWT, Swing, JavaFX & SWT 5
J ComboBox als Filter benutzen AWT, Swing, JavaFX & SWT 1
M ausgewählte Inhalt von ListItem inn ComboBox in der Tabelle speichern AWT, Swing, JavaFX & SWT 0
Developer_X Java JTable - Combobox + Checkbox - Cellrenderer + Editor AWT, Swing, JavaFX & SWT 3
G Dynamische ComboBox AWT, Swing, JavaFX & SWT 3
U Combobox mit individuellen Texten AWT, Swing, JavaFX & SWT 5
M JavaFX Combobox - Item Auswahl mit Tasten AWT, Swing, JavaFX & SWT 8
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
C Beschriftungen von Tabellenspalten mit Combobox aussuchen AWT, Swing, JavaFX & SWT 2
G JavaFX ComboBox .getItems().add() Problem AWT, Swing, JavaFX & SWT 9
D Swing [Frage] ComboBox + Label AWT, Swing, JavaFX & SWT 3
F SWT Problem mit Tabelle und Combobox in einem Wizard AWT, Swing, JavaFX & SWT 5
B JAVAFX icon in ComboBox einfügen AWT, Swing, JavaFX & SWT 5
W Swing Combobox Abhängigkeit AWT, Swing, JavaFX & SWT 1
S ComboBox-Werte aus einem Array an Textfields übergeben AWT, Swing, JavaFX & SWT 3
A Swing GUI mit ComboBox, wenn Item ausgewählt wurde neues GUI AWT, Swing, JavaFX & SWT 7
S Combobox aktualisieren AWT, Swing, JavaFX & SWT 3
B Erstellen eigener Combobox ("CellFactory") AWT, Swing, JavaFX & SWT 4
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
A combobox automatisch in ein textfeld wechseln AWT, Swing, JavaFX & SWT 3
J Swing Drive-ComboBox AWT, Swing, JavaFX & SWT 7
C TextFeld in Verbindung zur ComboBox automatisch aktualisieren AWT, Swing, JavaFX & SWT 7
L Swing Model für ComboBox AWT, Swing, JavaFX & SWT 14
H Combobox in einer einzelnen Zelle der Jtable AWT, Swing, JavaFX & SWT 2
T Java Combobox Problem AWT, Swing, JavaFX & SWT 3
C SWT Combobox mit Textdatei füllen AWT, Swing, JavaFX & SWT 2
M comboBox Listener? AWT, Swing, JavaFX & SWT 2
R Datenbanktabellen in Combobox AWT, Swing, JavaFX & SWT 3
C Combobox bei Tabellenänderung mit aktualisieren AWT, Swing, JavaFX & SWT 11
1 CellEditor mit ComboBox richtig beenden AWT, Swing, JavaFX & SWT 4
L SWT Actionlistener Combobox öffnen AWT, Swing, JavaFX & SWT 4
E Swing CellEditor mit Combobox durch Tastatureingabe editieren?! AWT, Swing, JavaFX & SWT 3
GianaSisters Swing ComboBox im jTable (in bestimmter Zelle nicht über die ganze Spalte) AWT, Swing, JavaFX & SWT 4
T Daten mittels ComboBox in ein JTable adden AWT, Swing, JavaFX & SWT 7
N Filternde Combobox in JTable verliert Fokus nach erster Eingabe AWT, Swing, JavaFX & SWT 2
F Wert zu Eintrag in ComboBox speichern?! AWT, Swing, JavaFX & SWT 7
P Swing ComboBox(en) in JTable auslesen und ausgeben AWT, Swing, JavaFX & SWT 11
M Index von Combobox AWT, Swing, JavaFX & SWT 20
L ComboBox in Action AWT, Swing, JavaFX & SWT 4
D ComboBox & CellListRenderer AWT, Swing, JavaFX & SWT 6
D ComboBox-Model mit Observer AWT, Swing, JavaFX & SWT 3
B Taschenrechner mit ComboBox AWT, Swing, JavaFX & SWT 7
T ComboBox auslesen AWT, Swing, JavaFX & SWT 11
P Combobox liesst falschen Wert AWT, Swing, JavaFX & SWT 10
C Combobox im JFrame aus Datenbank befüllen AWT, Swing, JavaFX & SWT 6
M Combobox soll Farbe einer Komponente setzen AWT, Swing, JavaFX & SWT 2
M Swing ComboBox ein SelectedItem übergeben/anzeigen AWT, Swing, JavaFX & SWT 7
J Werte aus Combobox speichern AWT, Swing, JavaFX & SWT 3
J Combobox als Filterkriterium (Gruppierung) in JTable AWT, Swing, JavaFX & SWT 7
R Swing ComboBox und doppelter Event!? AWT, Swing, JavaFX & SWT 10
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
M SWT ComboBox mit DB-Inhalten Designfrage AWT, Swing, JavaFX & SWT 5
W MouseListener im editable ComboBox AWT, Swing, JavaFX & SWT 14
W Combobox mit eingabefeld AWT, Swing, JavaFX & SWT 7
T Editable ComboBox / kein Weiterspringen AWT, Swing, JavaFX & SWT 12
M Combobox in JTable AWT, Swing, JavaFX & SWT 4
S Swing ComboBox aus Array befüllen AWT, Swing, JavaFX & SWT 2
K Per ComboBox Dateien einlesen AWT, Swing, JavaFX & SWT 23
0 Hintergundfarbe von editierbarer ComboBox ändern AWT, Swing, JavaFX & SWT 2
M Frage zu ComboBox AWT, Swing, JavaFX & SWT 7
O Bitte um Hilfe bei ComboBox in TableHeader AWT, Swing, JavaFX & SWT 9
A NetBeans und ComboBox AWT, Swing, JavaFX & SWT 2
SuperSeppel13 Combobox zur Farbwahl kollidiert mit NimbusLookAndFeel AWT, Swing, JavaFX & SWT 7
D ComboBox(Model) mit dummyItem AWT, Swing, JavaFX & SWT 10
D Inhalt von Textfield nach ComboBox AWT, Swing, JavaFX & SWT 2
GilbertGrape nochmal editierbare Combobox AWT, Swing, JavaFX & SWT 3
GilbertGrape JTable mit Combobox-Editierung schon nach einem Klick AWT, Swing, JavaFX & SWT 7
E Swing Button ActionListener Infos aus Textfield und ComboBox AWT, Swing, JavaFX & SWT 3
G ComboBox wird nicht angezeigt beim anhängen an eine Gruppe AWT, Swing, JavaFX & SWT 2
G Combobox Event AWT, Swing, JavaFX & SWT 4
G ComboBox aktualisieren AWT, Swing, JavaFX & SWT 13
C Binding eines EntityBean als SelectionInList in ComboBox AWT, Swing, JavaFX & SWT 7
R Text löchen bei Klick auf editierbare Combobox AWT, Swing, JavaFX & SWT 4
A ComboBox soll reagieren ohne fokus AWT, Swing, JavaFX & SWT 7
R Combobox mit Laufwerksbuchstaben AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben