ChoiceBox Elemente: Sprache ändern

_user_q

Aktives Mitglied
Momentan enthalten (Beispiele):
  • Hallo
  • Test
  • Ich mag Kloschüssel

Soll zu Folgendem verändert werden:
  • Hello
  • Test
  • I like toilet bowls

Ich könnte zwar einfach Folgendes machen, aber für 10 andere Sprachen würde es sehr viel werden:
Java:
// Englisch
choiceBox.getItems().remove(0, X);
choiceBox.getItems().addAll("Hello", "Test", "I like toilet bowls");
    
// Chinesisch oder so
choiceBox.getItems().remove(0, X);
choiceBox.getItems().addAll("ChingChong", "GuangDong", "DingDong"); // Sorry, das soll nicht rassistisch sein oder so!
Ich nutze bereits ResourceBundle, aber wie kann ich auch für ChoiceBox die Sprache mit ändern, ohne dass ich so viel Code brauche und jedes Element immer wieder ersetzen muss?
 

KonradN

Super-Moderator
Mitarbeiter
Du kannst die Werte doch aus dem resource bundle holen und im Code dann in der Art füllen:

Java:
choiceBox.getItems.addAll(
    resources.getString("hallo-text"),
    resources.getString("test-text"),
    resources.getString("toilet-like-text")
    );

resources ist dabei natürlich ein ResourceBundle, das Du geladen haben musst.
 

_user_q

Aktives Mitglied
Du kannst die Werte doch aus dem resource bundle holen und im Code dann in der Art füllen:

Java:
choiceBox.getItems.addAll(
    resources.getString("hallo-text"),
    resources.getString("test-text"),
    resources.getString("toilet-like-text")
    );

resources ist dabei natürlich ein ResourceBundle, das Du geladen haben musst.
Aber choiceBox.getItems().remove(0, Anzahl der Elemente); muss ich trotzdem machen oder? Oder gibt es da etwas Einfacheres?
 

_user_q

Aktives Mitglied

Du kannst die Werte doch aus dem resource bundle holen und im Code dann in der Art füllen:

Java:
choiceBox.getItems.addAll(
    resources.getString("hallo-text"),
    resources.getString("test-text"),
    resources.getString("toilet-like-text")
    );

resources ist dabei natürlich ein ResourceBundle, das Du geladen haben musst.
Das Einbauen funktioniert, aber der Wert der ChoiceBox wird bei jedem Neusetzen auf null gesetzt.
Java:
        choiceBox.getItems().clear();
        choiceBox.getItems().addAll(
                langB.getString("Left.text"),
                langB.getString("Wheel.text"),
                langB.getString("Right.text")
        );
        if (choiceBox.getValue() == null) choiceBox.getSelectionModel().selectFirst();
Letzte Zeile habe ich nur, damit auch etwas ausgewählt ist. Aber immer wenn die Sprache geändert wird, ist der Wert wieder null und nicht bei dem Element, das man zuvor ausgewählt hatte.
Dass immer das 0. Element ausgewählt wird, ist verständlich, weil ja die ChoiceBox geleert wird, aber nicht, dass es immer null ist.
Wobei es auch gut wäre, wenn das gleiche Element gleich wieder ausgewählt wäre.
 

KonradN

Super-Moderator
Mitarbeiter
Die Reihenfolge der Felder ist ja immer gleich - du kannst also den Index vorher mit getSelectedIndex() auslesen und dann mit setSelectedIndex neu setzen.

Ich habe das jetzt nicht ausprobiert, aber das wäre mein erster Ansatz. Dabei ggf. aufpassen: Falls noch nichts gewählt wurde, dann funktioniert das ggf. nicht - daher auf isEmpty() prüfen. (Das sind alles Methoden vom SelectionModel bzw. SingleSelectionModel das ChoiceBox.getSelectionModel() zurück geben sollte)
 

_user_q

Aktives Mitglied
Die Reihenfolge der Felder ist ja immer gleich - du kannst also den Index vorher mit getSelectedIndex() auslesen und dann mit setSelectedIndex neu setzen.

Ich habe das jetzt nicht ausprobiert, aber das wäre mein erster Ansatz. Dabei ggf. aufpassen: Falls noch nichts gewählt wurde, dann funktioniert das ggf. nicht - daher auf isEmpty() prüfen. (Das sind alles Methoden vom SelectionModel bzw. SingleSelectionModel das ChoiceBox.getSelectionModel() zurück geben sollte)
Statt .isEmpty() muss ich wohl == null verwenden. Doch das Speichern von SelectedIndex funktionuckelt noch nicht richtig.
  • Beim Starten des Programms muss das 1. Element ausgewählt werden. > choiceBox.selectFirst();
  • Beim Auswählen muss SelectedIndex gespeichert werden. > choiceBox.setOnMouseClicked((v) -> savedIndex = choiceBox.getSelectionModel().getSelectedIndex();
  • Beim Ändern der Sprache muss der vorherige Wert wieder ausgewählt werden. > choiceBox.select(savedIndex);
Doch wenn die Sprache geändert wird, wird choiceBox.setOnMouseClicked((v) -> { ... } getriggert, obwohl die Items ersetzt werden.
Hm 🤔
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
F JavaFX ChoiceBox Name als Auswahl bei einer Objektliste AWT, Swing, JavaFX & SWT 4
K JavaFX ChoiceBox befüllen AWT, Swing, JavaFX & SWT 14
G JavaFX ChoiceBox selectFirst IndexOutOfBoundsException AWT, Swing, JavaFX & SWT 7
M Elemente statisch anordnen AWT, Swing, JavaFX & SWT 4
T Elemente auf vorheriger Stage, nach Wechsel der Stage ansprechen AWT, Swing, JavaFX & SWT 32
Lunar Swing JFrame erstellt; weitere Elemente werden nicht eingefügt/sind nicht zu sehen AWT, Swing, JavaFX & SWT 4
J JavaFX JavaFX Splitpane - Zugriff auf die Controller der Elemente AWT, Swing, JavaFX & SWT 8
G Swing Variable Elemente für GroupLayout AWT, Swing, JavaFX & SWT 18
F JFrame zeigt nicht alle Elemente auf anhieb an AWT, Swing, JavaFX & SWT 4
J JavaFX Elemente werden nicht zu TableView hinzugefügt AWT, Swing, JavaFX & SWT 3
J JavaFX JavaFX Elemente an Fenstergröße skalieren AWT, Swing, JavaFX & SWT 5
M Schnittpunkte zwischen zwei Graphics2D Elemente ermitteln. AWT, Swing, JavaFX & SWT 5
T LayoutManager Anordnen der Elemente im GridBagLayout AWT, Swing, JavaFX & SWT 11
T AWT Grafik"Array" einzelne Elemente verschieben AWT, Swing, JavaFX & SWT 1
sandaime Swing 3 JComboBoxen ausgelesen Elemente einzel ausgeben AWT, Swing, JavaFX & SWT 6
M JavaFX GUI-Elemente erstellen, nachdem die GUI geladen hat AWT, Swing, JavaFX & SWT 4
TheJavaKid JavaFX Elemente positionieren AWT, Swing, JavaFX & SWT 2
B Swing Auf JList-Elemente aus einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 1
N JavaFX GUI Elemente einer anderen (FXML)Klasse ansprechen AWT, Swing, JavaFX & SWT 16
D JavaFX Elemente aus VBox unterscheiden AWT, Swing, JavaFX & SWT 1
K Kann nicht auf GUI Elemente zugreifen, mit einer Methode im Controller klappts, mit der anderen nich AWT, Swing, JavaFX & SWT 10
R Swing Elemente verschieben sich im GBL beim Ein/Ausblenden AWT, Swing, JavaFX & SWT 0
Z Swing Swing: Elemente werden doppel/verschoben gezeichnet, sind teils unsichtbar etc... AWT, Swing, JavaFX & SWT 10
wolfgang63 JavaFX Elemente einer Group entfernen AWT, Swing, JavaFX & SWT 1
D SWT SWT Elemente aus anderen Klassen aufrufen - Invalid thread access AWT, Swing, JavaFX & SWT 6
O Ähnliche GUI Elemente - vererbung?! AWT, Swing, JavaFX & SWT 0
M AWT Gui anzeige Probes - Elemente erscheinen nicht regelmäßig AWT, Swing, JavaFX & SWT 2
M Swing JTabbedPane: Tab-Elemente anpassen AWT, Swing, JavaFX & SWT 3
T Swing Elemente der JList überlappend darstellen AWT, Swing, JavaFX & SWT 5
K GUI Elemente über eine separate Textdatei beschriften? AWT, Swing, JavaFX & SWT 4
T Alle Swing-Elemente anzeigen AWT, Swing, JavaFX & SWT 9
M Swing Elemente im Dialog neu "laden". AWT, Swing, JavaFX & SWT 6
T JTree - Elemente mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 6
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
S Elemente im Panel in richtige Ausgangsstellung bringen AWT, Swing, JavaFX & SWT 10
K LayoutManager Wieso verschwinden Elemente? AWT, Swing, JavaFX & SWT 20
M JFrame + JNA/aero modul - GUI Elemente so möglich? AWT, Swing, JavaFX & SWT 28
P Elemente einer JList ausgeben AWT, Swing, JavaFX & SWT 11
B JList zeigt Elemente nicht an AWT, Swing, JavaFX & SWT 3
R Größe/Anordnung der Gui-Elemente automatisch? AWT, Swing, JavaFX & SWT 6
S JVM von Oracle/Sun soll für AWT/SWING Elemente die die Optimierungen der NVidia Treiber verwenden AWT, Swing, JavaFX & SWT 3
C Swing JFrame nimmt keine anderen Elemente auf AWT, Swing, JavaFX & SWT 13
R JApplet, Elemente unsichtbar AWT, Swing, JavaFX & SWT 2
1 JList - Elemente mit rechter Maustaste wählen AWT, Swing, JavaFX & SWT 6
L ID für GUI Elemente generieren AWT, Swing, JavaFX & SWT 11
C SWT-Elemente an View-Fenster angleichen und automatisch resizen AWT, Swing, JavaFX & SWT 3
U Elemente im Panel zentrieren mit GridLayout AWT, Swing, JavaFX & SWT 3
P Elemente im Kreis aufstellen AWT, Swing, JavaFX & SWT 5
G Swing Elemente aus Arraylist auf JFrame anzeigen AWT, Swing, JavaFX & SWT 9
G GUI Elemente aus NetBeans verwenden AWT, Swing, JavaFX & SWT 8
L SWT tree elemente markieren AWT, Swing, JavaFX & SWT 4
C Swing Elemente in JList sortieren AWT, Swing, JavaFX & SWT 2
T Elemente zu JList dynamisch hinzufügen AWT, Swing, JavaFX & SWT 4
S JTree Elemente nach BaumLevel abspeichern AWT, Swing, JavaFX & SWT 2
S JTree & JComboBox - Elemente übers Fenster hinaus anzeigen AWT, Swing, JavaFX & SWT 9
F JScrollPane überlagert andere Elemente AWT, Swing, JavaFX & SWT 5
S Swing UI-Elemente ordnen sich ungewollt in einer Reihe (ohne Layout) AWT, Swing, JavaFX & SWT 5
K Swing Elemente auf Zeichenfeld verschieben AWT, Swing, JavaFX & SWT 8
S Mit eigener Klasse auf GUI-Elemente zugreifen AWT, Swing, JavaFX & SWT 3
E Swing JComboBox als CellEditor in JTable zeigt Elemente nicht sofort an AWT, Swing, JavaFX & SWT 5
R In JFrame oder in Canvas mit grafischen Elemente zeichnen AWT, Swing, JavaFX & SWT 2
E Swing JList zur Laufzeit hinzugefügt elemente nicht sichtbar?! AWT, Swing, JavaFX & SWT 2
S Swing Elemente einer JList Farbig hinterlegen AWT, Swing, JavaFX & SWT 6
B Swing Dynamisch Elemente in JScrollPane hinzufügen AWT, Swing, JavaFX & SWT 6
M Swing Von einem Controller aus View-Elemente ändern AWT, Swing, JavaFX & SWT 11
T DND mit JList Elemente nicht am Ende einfügen AWT, Swing, JavaFX & SWT 3
Tobse Swing JList elemente hinzufügen AWT, Swing, JavaFX & SWT 4
K JLayeredPane Elemente auf gleicher Position AWT, Swing, JavaFX & SWT 7
D Elemente werden nicht angezeigt AWT, Swing, JavaFX & SWT 2
W jComboBox unterschiedlich selectable elemente AWT, Swing, JavaFX & SWT 7
M Elemente in JTabbedPane platzieren AWT, Swing, JavaFX & SWT 7
N Swing JList Elemente ausgeben fehlerhaft AWT, Swing, JavaFX & SWT 4
M Swing Alle Elemente eines Panels? AWT, Swing, JavaFX & SWT 9
S Eigene GUI Elemente erstellen AWT, Swing, JavaFX & SWT 6
M.F.G. Fehler bei der Anzeige Grafischer Elemente AWT, Swing, JavaFX & SWT 13
B Swing Problem beim Elemente zu JList hinzufügen AWT, Swing, JavaFX & SWT 5
C (Swing)GUI-Elemente werden nicht aktualisiert. AWT, Swing, JavaFX & SWT 2
P JList: Reihenfolge der Elemente per Drag'n'Drop ändern. AWT, Swing, JavaFX & SWT 9
M Swing JList - Elemente umbenennen? AWT, Swing, JavaFX & SWT 4
MrMilti Gezeichnete Java2D Elemente mit Events versehen AWT, Swing, JavaFX & SWT 3
H [gelöst] Swing Elemente verdecken AWT, Swing, JavaFX & SWT 14
B In externer Eventhandlerklasse auf GUI-Elemente zugreifen AWT, Swing, JavaFX & SWT 3
K BoxLayout skaliert die "falschen" Elemente AWT, Swing, JavaFX & SWT 5
A SWT - Elemente zur Laufzeit ändern AWT, Swing, JavaFX & SWT 6
S Andere Elemente in JComboBox anzeigen AWT, Swing, JavaFX & SWT 2
T Elemente werden nicht direkt angezeigt AWT, Swing, JavaFX & SWT 3
S Nachträglich Swing-Elemente in JFrame erzeugen AWT, Swing, JavaFX & SWT 18
K Titel für eingebundene Elemente wie JPanel AWT, Swing, JavaFX & SWT 3
F Dynamische Swing Elemente AWT, Swing, JavaFX & SWT 10
B Grafische Anordnung der Elemente AWT, Swing, JavaFX & SWT 2
S JComboBox zeigt beim 1. öffnen nur 2 Elemente ? AWT, Swing, JavaFX & SWT 9
J LayoutManager der Elemente untereinander anordnet. AWT, Swing, JavaFX & SWT 11
S Zugriff auf Elemente funktioniert mit SWING nicht mehr AWT, Swing, JavaFX & SWT 5
G JButton und andere J-Elemente: Markierung ausblenden AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben