javafx
Radio knapp
Sök…
Skapa radioknappar
Med radioknappar kan du låta användaren välja ett element av de givna. Det finns två sätt att förklara en RadioButton
med en text förutom den. Antingen genom att använda standardkonstruktören RadioButton()
och ställa in texten med setText(String)
eller genom att använda den andra konstruktören RadioButton(String)
.
RadioButton radioButton1 = new RadioButton();
radioButton1.setText("Select me!");
RadioButton radioButton2= new RadioButton("Or me!");
Eftersom RadioButton
är en förlängning av Labeled
kan det också finnas en Image
anges för RadioButton
. Efter att ha skapat RadioButton
med en av konstruktörerna, lägg bara till Image
med setGraphic(ImageView)
som här:
Image image = new Image("ok.jpg");
RadioButton radioButton = new RadioButton("Agree");
radioButton.setGraphic(new ImageView(image));
Använd grupper på radioknappar
En ToggleGroup
används för att hantera RadioButton
s så att bara en i varje grupp kan väljas varje gång.
Skapa en enkel ToggleGroup
som följande:
ToggleGroup group = new ToggleGroup();
När du har skapat en Togglegroup
kan den tilldelas RadioButton
s med hjälp av setToggleGroup(ToggleGroup)
. Använd setSelected(Boolean)
att välja en av RadioButton
s.
RadioButton radioButton1 = new RadioButton("stackoverlow is awesome! :)");
radioButton1.setToggleGroup(group);
radioButton1.setSelected(true);
RadioButton radioButton2 = new RadioButton("stackoverflow is ok :|");
radioButton2.setToggleGroup(group);
RadioButton radioButton3 = new RadioButton("stackoverflow is useless :(");
radioButton3.setToggleGroup(group);
Händelser för radioknappar
När en av RadioButton
i en ToggleGroup
väljs utför en applikation vanligtvis en åtgärd. Nedan visas ett exempel som skriver ut användardata för den valda RadioButton
som har ställts in med setUserData(Object)
.
radioButton1.setUserData("awesome")
radioButton2.setUserData("ok");
radioButton3.setUserData("useless");
ToggleGroup group = new ToggleGroup();
group.selectedToggleProperty().addListener((obserableValue, old_toggle, new_toggle) -> {
if (group.getSelectedToggle() != null) {
System.out.println("You think that stackoverflow is " + group.getSelectedToggle().getUserData().toString());
}
});
Begär fokus för radioknappar
Låt oss säga att den andra RadioButton
av tre är setSelected(Boolean)
med setSelected(Boolean)
, fokus är fortfarande vid den första RadioButton
standard. För att ändra detta använder requestFocus()
metoden requestFocus()
.
radioButton2.setSelected(true);
radioButton2.requestFocus();