UI控件 -> RadioButton

来源:互联网 发布:韦东山linux第一期 编辑:程序博客网 时间:2024/05/18 03:35
package javafxui;import java.util.Observable;import javax.swing.Icon;import javafx.application.Application;import javafx.beans.value.ObservableValue;import javafx.scene.Scene;import javafx.scene.control.RadioButton;import javafx.scene.control.Toggle;import javafx.scene.control.ToggleGroup;import javafx.scene.image.Image;import javafx.scene.layout.HBox;import javafx.scene.layout.Pane;import javafx.scene.layout.VBox;import javafx.stage.Stage;public class LearnRadioButton extends Application{@Overridepublic void start(Stage preStage) {VBox vBox = new VBox();Image imageHouse = new Image("res/house.jpg");Image imageCalendar = new Image("res/calendar.jpg");Image imageNotepad = new Image("res/notepad.jpg");/*@1  * 创建 RadioButton * 注意:创建的Home等 是Text 而不是 它的 Userdata */RadioButton rb1 = new RadioButton();rb1.setText("Home");RadioButton rb2 = new RadioButton("Calendar");RadioButton rb3 = new RadioButton("Contacts");/*@2 * 创建一组RadioButton * ToggleGroup() *设置Usetdata  *  */final ToggleGroup group = new ToggleGroup();rb1.setToggleGroup(group);rb1.setSelected(true);rb2.setToggleGroup(group);rb3.setToggleGroup(group);rb1.setUserData("Hello");rb2.setUserData("Everyone");rb3.setUserData("Nice to meet you");rb2.setSelected(true); rb2.requestFocus();//使 rb2 为焦点/*@3 * 处理Radio Button动作 *  * 然后使用Group的getSelectedToggle方法得到当前选中的Radio Button * 并通过调用getUserData方法提取User Data *  */group.selectedToggleProperty().addListener((ObservableValue<? extends Toggle> ov, Toggle old_Toggle, Toggle new_Toggle)->{if(group.getSelectedToggle()!= null) {System.out.println(group.getSelectedToggle().getUserData());}});vBox.getChildren().addAll(rb1,rb2,rb3);Pane pane = new Pane();pane.getChildren().add(vBox);preStage.setTitle("ShowJavaFXUI");Scene scene = new Scene(pane,300,300);preStage.setScene(scene);preStage.show();}public static void main(String[] args) {Application.launch(args);}}

原创粉丝点击