Ich arbeite an JavaFX 8 und SceneBuilder
. Ich habe einige Radio-Buttons in der FXML-Datei erstellt und einen toggleGroup
-Namen für eine Radio-Button-Liste angegeben. So, jetzt möchte ich die toggleGroup
's ausgewählten Radio-Button in meinem Controller, muss ich alle Radiobuttons wieder als Felder in der Steuerung, oder nur das toggleGroup
Objekt wird mir die ausgewählte Radio-Taste (der Text von nur dieses Optionsfeld, nicht das Schaltflächenobjekt).Wie ausgewählt werden Optionsfeld von ToggleGroup
Antwort
Angenommen, Sie haben eine Umschaltgruppe und drei Optionsfelder, die zu dieser Gruppe gehören.
ToggleGroup group = new ToggleGroup();
RadioButton rb1 = new RadioButton("RadioButton1");
rb1.setUserData("RadioButton1");
rb1.setToggleGroup(group);
rb1.setSelected(true);
RadioButton rb2 = new RadioButton("RadioButton2");
rb2.setUserData("RadioButton2");
rb2.setToggleGroup(group);
RadioButton rb3 = new RadioButton("RadioButton3");
rb3.setUserData("RadioButton3");
rb3.setToggleGroup(group);
Wenn Sie ein Optionsfeld aus dieser Toggle-Gruppe auswählen, wird die folgende changed(...)
Methode aufgerufen werden.
Dies wurde nie richtig oder gründlich beantwortet, also dachte ich, ich würde die Lösung posten, die ich bekam. Wenn Sie in SceneBuilder
Optionsfelder erstellen, verwenden Sie SceneBuilder
, um sie einer Gruppe zuzuordnen. Die Art und Weise, wie Sie über den Controller auf diese Gruppe zugreifen, besteht darin, zunächst eine Variable vom Typ ToggleGroup
im Controller zu erstellen und denselben Namen wie den in SceneBuilder
erstellten zu benennen. Dann kannst du es benutzen. Hier ist ein Pseudo-Code Beispiel dafür, wie ich es tat:
// your imports
public class Controller
{
@FXML ToggleGroup myGroup; //I called it myGroup in SceneBuilder as well.
public void myGroupAction(ActionEvent action)
{
System.out.println("Toggled: " + myGroup.getSelectedToggle().getUserData().toString());
}
public void initialize()
{
//whatever initialize code you have here
}
}
Obwohl der Text von der getUserData
Eigenschaft zurück langwieriger ist. Hier ist eine Möglichkeit, nur den Namen des Radiobutton zu bekommen:
myGroup.selectedToggleProperty().addListener(new ChangeListener<Toggle>()
{
@Override
public void changed(ObservableValue<? extends Toggle> ov, Toggle t, Toggle t1)
{
RadioButton chk = (RadioButton)t1.getToggleGroup().getSelectedToggle(); // Cast object to radio button
System.out.println("Selected Radio Button - "+chk.getText());
}
});
hoffte, das hilft jemand die Straße hinunter ...
@FXML
ToggleGroup right; //I called it right in SceneBuilder.
später irgendwo in der Methode.
RadioButton selectedRadioButton = (RadioButton) right.getSelectedToggle();
String toogleGroupValue = selectedRadioButton.getText();
Schnell und einfach! – marw
- 1. Optionsfeld ausgewählt?
- 2. Event für Optionsfeld ausgewählt?
- 3. Kein Standard-Optionsfeld ausgewählt (J2ME, Java)
- 4. Javascript wenn Optionsfeld ausgewählt, zusätzliche Eingabe erforderlich
- 5. Form: aktivieren TextArea- wenn Optionsfeld ausgewählt ist
- 6. Optionsfeld ausgewählt & <span> Aktualisierungen
- 7. Highcharts: Grafik ändern, wenn Optionsfeld ausgewählt wurde
- 8. Abrufen von ToggleGroup Name JavaFX
- 9. JQuery: Wie ermittelt man, ob ein Optionsfeld ausgewählt wurde?
- 10. Wie erhalte ich, welches Optionsfeld aus einer Groupbox ausgewählt wird?
- 11. JavaFX ToggleGroup in SceneBuilder
- 12. Ionic2 - Ion-Radio kann nicht ausgewählt/nicht ausgewählt werden
- 13. Wie werden die Puffergrößen ausgewählt?
- 14. jquery javascript: Aktion ausführen, wenn Optionsfeld ausgewählt ist
- 15. ASP.Net C# Welches Optionsfeld in einem bestimmten GroupName ist ausgewählt?
- 16. RadioMenuItem zu ToggleGroup in FXML
- 17. Wie getestetes Optionsfeld von ansichten.py?
- 18. Angular2/Ionic2 - Inhalt umschalten, nachdem ein Optionsfeld ausgewählt wurde
- 19. Angularjs Radiobuttons werden mehrfach ausgewählt
- 20. Django, Einstellung ausgewählt = "ausgewählt" an einem Funkeingang
- 21. ext.net Optionsfeld ausgewählte Eigenschaft
- 22. Können Layouts von Grails Controllern ausgewählt werden?
- 23. ToggleGroup in Unity3D, welche ist die aktive?
- 24. Anzeigen von Steuerelementen basierend auf ausgewähltem Optionsfeld
- 25. Wie Sie überprüfen, ob Sie auf ein Optionsfeld klicken, das bereits ausgewählt ist
- 26. Klingelton Picker - Optionsfeld
- 27. Gibt es eine Möglichkeit, dass andere Tasten eingefroren werden können, nachdem ein Optionsfeld ausgewählt wurde, d. H. Jetzt kann keine andere Schaltfläche ausgewählt werden?
- 28. Laravel Optionsfeld Name erscheint nicht in Eingabeaufforderung, wenn nichts Optionsfeld
- 29. Wie kann Canvas-Text ausgewählt werden?
- 30. Wie kann UITableView Header ausgewählt werden?
Ich fragte, ob ich gefragt werde. um die 3 RadioButtons wieder im Controller zu machen (nachdem sie in FXML gemacht wurden), oder ich kann nur das ToggleGroup-Objekt nur machen und irgendwie auf den ausgewählten Button zugreifen. –
@Rounaq_intel, versuchen Sie, nur die Umschaltgruppe zum Controller hinzuzufügen und den Listener in der obigen Antwort hinzuzufügen. –
Danke, genau wonach ich gesucht habe. – Kefirchiks