JavaFX Tab auswählen mit JavaFX

M

MaggyMo

Mitglied
Guten Abend,
ich erstelle im Moment ein Java-Projekt und das zum ersten Mal mit JavaFX und habe leider noch ein paar Probleme.

Frage1:
In meinem Projekt gibt es eine Startseite mit zwei Buttons mit der Aufschrift "Tab1" und "Tab2". Je nachdem auf welchen Button man klickt, soll auf der danach folgenden Hauptseite das dementsprechende Tab ausgewählt sein. Das mit dem ersten Tab klappt, da dieses standardmäßig ausgewählt ist. Bei dem Button "Tab2" habe ich so meine Probleme. Weiß jemand, wie ich das lösen kann?

Frage2:
In diesem sogenannten zweiten Tab soll es eine Art Quiz geben. Dazu gibt es ein Label und darunter mehrere Buttons. Das Label stellt die Frage da und die Buttons die möglichen Antwortmöglichkeiten. Die nötigen Informationen dazu lese ich aus einer Textdatei aus. Ich habe eine Klasse Frage mit einer ArrayList von Strings , die als Antwortmöglichkeiten dienen. Leider schaffe ich es nicht, aus der Controller Klasse auf diese Liste zuzugreifen. Die Liste befindet sich in der Klasse Main. Ich habe es bereits mit einer Observer List versucht, aber irgendwie will das einfach nicht bei mir klappen, weil ich absolut nicht weiß, wie ich an diese Liste komme.


Liebe Grüße:)
 
L

lam_tr

Top Contributor
Frage 1:
du kannst doch über tabPane.getSelectionModel().select(index) das gewünschte Tab selektieren.
Code:
button1.setOnMouseClicked(e-> tabPane.getSelectionModel().select(0));

button2.setOnMouseClicked(e-> tabPane.getSelectionModel().select(1));

Frage 2:
wieso packst du die Liste der Fragen nicht in die TabPane oder liest sie von dort aus? Ansonsten würde ich über Dependency Injection die Liste holen
Hier: https://github.com/google/guice/wiki/GettingStarted
 
M

MaggyMo

Mitglied
Frage 1:
du kannst doch über tabPane.getSelectionModel().select(index) das gewünschte Tab selektieren.
Code:
button1.setOnMouseClicked(e-> tabPane.getSelectionModel().select(0));

button2.setOnMouseClicked(e-> tabPane.getSelectionModel().select(1));

Frage 2:
wieso packst du die Liste der Fragen nicht in die TabPane oder liest sie von dort aus? Ansonsten würde ich über Dependency Injection die Liste holen
Hier: https://github.com/google/guice/wiki/GettingStarted
Was meinst du denn mit dem "e->"? Ich bin leider noch Anfänger.
Bzw. wie komme ich denn an die TabPane aus einem anderen Controller?
 
Zuletzt bearbeitet:
M

MaggyMo

Mitglied
Das ist ein Lambda-Ausdruck. Der meint das genau so, wie es da steht :)
Danke, das bringt mich schonmal um einiges weiter :) Ich dachte das wäre so eine Art Platzhalter für irgendwas.
Wie kann ich denn von einer Controller Klasse auf eine andere zugreifen? Weil ich komme in der aktuellen Klasse nicht an den/die tabPane ran. Mit getter und Setter hat es leider nicht geklappt.
 
mihe7

mihe7

Top Contributor
Ich dachte das wäre so eine Art Platzhalter für irgendwas.
Nein, ein Lambda ist eine anonyme Funktion. Wenn Java irgendwo ein Interface erwartet, das die Implementierung von nur einer(!) Methode verlangt, dann muss man nicht eine anonyme Klasse schreiben, sondern kann ein Lambda verwenden.

Zum Beispiel würde man den ActionListener von Swing so als anonyme Klasse implementieren:
Java:
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent event) {
        System.out.println("Klick");
    }
});
Mit einem Lambda geht das schön kurz:
Java:
button.addActionListener(event -> System.out.println("Klick"));

Wie kann ich denn von einer Controller Klasse auf eine andere zugreifen? Weil ich komme in der aktuellen Klasse nicht an den/die tabPane ran. Mit getter und Setter hat es leider nicht geklappt.
Für JavaFX bin ich der falsche Ansprechpartner. Warum willst Du überhaupt von einem Controller auf einen anderen zugreifen? Wir hatten hier mal einen schönen MVC-Thread zum Thema.
 
M

MaggyMo

Mitglied
Nein, ein Lambda ist eine anonyme Funktion. Wenn Java irgendwo ein Interface erwartet, das die Implementierung von nur einer(!) Methode verlangt, dann muss man nicht eine anonyme Klasse schreiben, sondern kann ein Lambda verwenden.

Zum Beispiel würde man den ActionListener von Swing so als anonyme Klasse implementieren:
Java:
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent event) {
        System.out.println("Klick");
    }
});
Mit einem Lambda geht das schön kurz:
Java:
button.addActionListener(event -> System.out.println("Klick"));


Für JavaFX bin ich der falsche Ansprechpartner. Warum willst Du überhaupt von einem Controller auf einen anderen zugreifen? Wir hatten hier mal einen schönen MVC-Thread zum Thema.
Ahh, jetzt macht dieses "e->" Sinn, Danke !
Ich habe eine Art Startseite programmiert, auf der sich mehrere Buttons befinden. Klickt man auf einen dieser Button, wird die Startseite geschlossen und ein anderes Fenster öffnet sich. Dieses Fenster besitzt mehrere Tabs. Je nachdem welcher Button zuvor gedrückt wurde, soll das dementsprechende Tab vorausgewählt sein.
 
L

lam_tr

Top Contributor
Ahh, jetzt macht dieses "e->" Sinn, Danke !
Ich habe eine Art Startseite programmiert, auf der sich mehrere Buttons befinden. Klickt man auf einen dieser Button, wird die Startseite geschlossen und ein anderes Fenster öffnet sich. Dieses Fenster besitzt mehrere Tabs. Je nachdem welcher Button zuvor gedrückt wurde, soll das dementsprechende Tab vorausgewählt sein.

Ich würde da EventBus benutzen, entweder Google Guava oder GreenRobot Eventbus. Wobei von GreenRobot ist es lightweight und wird sehr oft für Android benutzt.

Ansonsten kannst du auch direkt über den Selection Change TabPane#getSelectionModel#selectedItemProperty machen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JavaFX JavaFX Table gespeichertes Wert auswählen/anvisieren AWT, Swing, JavaFX & SWT 3
L ComboBox Wert automatisch auswählen AWT, Swing, JavaFX & SWT 6
D JButton per Tastenkombi auswählen AWT, Swing, JavaFX & SWT 2
C JComboBox Objecte übergeben und Eintrag auswählen AWT, Swing, JavaFX & SWT 3
domjos1994 JavaFX Element auswählen auf dem der Cursor ist AWT, Swing, JavaFX & SWT 1
S Pfad für Speichervorgang auswählen AWT, Swing, JavaFX & SWT 11
E JavaFX TableView mit Rechtsklick Zelle auswählen AWT, Swing, JavaFX & SWT 8
W Bei Programmstart jRadioButton automatisch auswählen AWT, Swing, JavaFX & SWT 2
A Swing per JComboBox gewünschtes Attribut auswählen und Komponenten passen sich an AWT, Swing, JavaFX & SWT 7
T JTree - Elemente mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 6
H Swing Element aus JComboBox auswählen AWT, Swing, JavaFX & SWT 2
S Swing Ordner im JFileChooser auswählen AWT, Swing, JavaFX & SWT 2
N Speicherpfad für Datei auswählen AWT, Swing, JavaFX & SWT 2
F Swing ArrayList in JList anzeigen und Objekte auswählen AWT, Swing, JavaFX & SWT 2
P Swing RadioButtons - nur einen auswählen AWT, Swing, JavaFX & SWT 3
propra Auf einem JPanel gezeichnete Linie auswählen AWT, Swing, JavaFX & SWT 3
M gleiches Element in JList mehrmals hintereinander auswählen AWT, Swing, JavaFX & SWT 6
Dit_ JTextField | Text auswählen und Caret setzen AWT, Swing, JavaFX & SWT 7
H Swing jTable Zeitspanne auswählen AWT, Swing, JavaFX & SWT 3
Landei Swing JTree - Element mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 4
M FileChooser Bilder auswählen AWT, Swing, JavaFX & SWT 8
M Swing jcombobox als jtable-editor: neues Item auswählen AWT, Swing, JavaFX & SWT 4
R JFileChooser - Initiales Verzeichnis auswählen AWT, Swing, JavaFX & SWT 8
N Mit JFileChooser ein Verzeichnis auswählen AWT, Swing, JavaFX & SWT 7
S [gelöst] API zum bequemen Navigieren und Auswählen von Ordnern AWT, Swing, JavaFX & SWT 3
N Defaulttext per Mausklick auswählen AWT, Swing, JavaFX & SWT 4
R Zahl aus Zahlenbereich auswählen AWT, Swing, JavaFX & SWT 9
T einzelne Zelle einer JTable auswählen und Hintergrundfarbe ändern AWT, Swing, JavaFX & SWT 2
D JTree programmtechnisch mehrere Nodes auswählen. AWT, Swing, JavaFX & SWT 2
N JCalendar - Kein Datum auswählen AWT, Swing, JavaFX & SWT 3
S JTable Reihe auswählen AWT, Swing, JavaFX & SWT 2
S Welches Event beim auswählen einer Zelle? [JTable] AWT, Swing, JavaFX & SWT 3
A JTable zeile auswählen AWT, Swing, JavaFX & SWT 2
K Zeilen von TextArea auswählen AWT, Swing, JavaFX & SWT 3
B JComboBox Item auswählen AWT, Swing, JavaFX & SWT 11
A jtextarea -> ganze zeile auswählen AWT, Swing, JavaFX & SWT 5
H Noch einmal JList (nichts auswählen) AWT, Swing, JavaFX & SWT 2
K Bilddatei mit Filechooser auswählen und anzeigen/impotieren AWT, Swing, JavaFX & SWT 18
P JSpinner Objekt anstatt Zahlen sollen man Namen auswählen AWT, Swing, JavaFX & SWT 2
J JList-Item ind JTable-Zelle auswählen. AWT, Swing, JavaFX & SWT 5
F JTree Letzte Node auswählen AWT, Swing, JavaFX & SWT 8
D "Datei auswählen" Fenster AWT, Swing, JavaFX & SWT 5
tinokramm [AWT] Zeichnungen per Maus auswählen AWT, Swing, JavaFX & SWT 8
R JTable: nur eine Zeile auswählen AWT, Swing, JavaFX & SWT 2
T Zeile in JTable mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 8
F Tree-Knoten programmgesteuert auswählen AWT, Swing, JavaFX & SWT 3
K Farbverlauf -> Farbe auswählen mit Regler || JTable Selec AWT, Swing, JavaFX & SWT 5
G für showInputDialog kein eigenes Icon auswählen AWT, Swing, JavaFX & SWT 6
bernd Aus einem JTextArea einen Eintrag auswählen AWT, Swing, JavaFX & SWT 11
P Inhalt von JTextField beim Auswählen markieren AWT, Swing, JavaFX & SWT 7
M Grafikobjekte mit Mouse auswählen und verschieben AWT, Swing, JavaFX & SWT 2
W JavaFX JavaFX - TreeView will nicht AWT, Swing, JavaFX & SWT 8
H JavaFX JavaFX - Scene Builder - BorderPane AWT, Swing, JavaFX & SWT 23
D Columns unabhängig voneinander mit Daten füllen JavaFx AWT, Swing, JavaFX & SWT 1
C JavaFX Installation unter IntelliJ IDEA AWT, Swing, JavaFX & SWT 5
J JavaFX Label aktualisieren AWT, Swing, JavaFX & SWT 18
H JavaFX JavaFX Import Fehler AWT, Swing, JavaFX & SWT 4
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
T Szene wechselen JavaFX mit If in Main Class AWT, Swing, JavaFX & SWT 2
S JavaFx Zufallsfarbe beim Button-Klick AWT, Swing, JavaFX & SWT 22
M JavaFX JavaFX in mehrere Controller AWT, Swing, JavaFX & SWT 21
R javafx erste application AWT, Swing, JavaFX & SWT 12
K JavaFX - Binding & Co AWT, Swing, JavaFX & SWT 34
S Alternative JavaFX TableView AWT, Swing, JavaFX & SWT 1
B Game of Life in JavaFX AWT, Swing, JavaFX & SWT 5
B eclipse für JavaFx setuppen AWT, Swing, JavaFX & SWT 4
N JavaFX Chioceboxen verküpfen AWT, Swing, JavaFX & SWT 0
J JavaFX Controls AWT, Swing, JavaFX & SWT 4
S JavaFx AWT, Swing, JavaFX & SWT 2
Tashtego JavaFX + Mobile AWT, Swing, JavaFX & SWT 9
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
L JavaFX Javafx Dependency-Inversion AWT, Swing, JavaFX & SWT 19
OSchriever JavaFX auf Raspberry Pi 4 AWT, Swing, JavaFX & SWT 3
J JavaFX JavaFX Splitpane - Zugriff auf die Controller der Elemente AWT, Swing, JavaFX & SWT 8
M Java und JavaFX 13 läuft endlich AWT, Swing, JavaFX & SWT 4
N JavaFX Logging des JavaFX Application Threads mit Log4J AWT, Swing, JavaFX & SWT 3
L Java FX JavaFX Effect Attribute ausdrucken AWT, Swing, JavaFX & SWT 1
Hatsi09 JavaFx Mediaplayer seltsames Verhalten AWT, Swing, JavaFX & SWT 0
Tashtego JavaFX - Datenübergabe zwischen Scenes AWT, Swing, JavaFX & SWT 8
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
S Kann javafx.scene.layout.VBoxBuilder nicht importieren AWT, Swing, JavaFX & SWT 3
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
S Jogl und JavaFX AWT, Swing, JavaFX & SWT 6
Bluedaishi JavaFX ProgressBar AWT, Swing, JavaFX & SWT 10
S JavaFX JavaFX TableView scrollen färbt falsche Zeilen AWT, Swing, JavaFX & SWT 1
F JavaFX JavaFX Builden: JavaFX Runtime components are missing AWT, Swing, JavaFX & SWT 0
F JavaFX wirft zufällig Exceptions AWT, Swing, JavaFX & SWT 5
M JavaFX JAVAFX TreeItem mit Tooltip versehen AWT, Swing, JavaFX & SWT 4
techM JavaFX -> CSS AWT, Swing, JavaFX & SWT 5
J JavaFx TableView mit CheckBox AWT, Swing, JavaFX & SWT 4
J JavaFX Stoppuhr mit javafx.timeline AWT, Swing, JavaFX & SWT 2
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
O Zukunft von Swing und JavaFX ? AWT, Swing, JavaFX & SWT 3
L JavaFX auf dem PI 4 installieren AWT, Swing, JavaFX & SWT 2
L JavaFX JavaFX Forms mit Groovy starten AWT, Swing, JavaFX & SWT 1
K JavaFX CSS Border (Verschiebung verhindern) AWT, Swing, JavaFX & SWT 4
K JavaFX Element in HBOX nach rechts verschieben AWT, Swing, JavaFX & SWT 2
M error: package javafx.scene.web is not visible import javafx.scene.web.*; AWT, Swing, JavaFX & SWT 16
J import javafx.fxml* bei JavaFX 13 geht nicht mehr AWT, Swing, JavaFX & SWT 7
F Kein JavaFX mehr im Eclipse Wizard AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Anzeige

Neue Themen


Oben