javafX初探(单选按钮)

52 篇文章 0 订阅
47 篇文章 4 订阅

本章介绍单选按钮控件,单选按钮是ToggleButton的特殊实现。一个单选按钮可以被选择也可以不被选择。一般情况单选按钮放在一个组里使用,并且此组中的单选按钮在某一时刻只能存在一个被选中。下面的图片展示了3个单选按钮:

 

创建单选按钮

使用下面代码创建单选按钮

//A radio button with an empty string for its label
RadioButton rb1 = new RadioButton();
//Setting a text label
rb1.setText("Home");
//A radio button with the specified label
RadioButton rb2 = new RadioButton("Calendar");


 

我们可以通过setSelected方法来设置选中某个单选按钮。

因为RadioButton也是扩展子Labeled,所以我们也可以为他添加图片内容如下:

Image image = new Image(getClass().getResourceAsStream("ok.jpg"));
RadioButton rb = new RadioButton("Agree");
rb.setGraphic(new ImageView(image));


 

添加单选按钮到组

代码如下:

final ToggleGroup group = new ToggleGroup();

RadioButton rb1 = new RadioButton("Home");
rb1.setToggleGroup(group);
rb1.setSelected(true);

RadioButton rb2 = new RadioButton("Calendar");
rb2.setToggleGroup(group);
 
RadioButton rb3 = new RadioButton("Contacts");
rb3.setToggleGroup(group);


 

运行代码,显示如下:

处理事件:

代码如下:

ImageView image = new ImageView();

rb1.setUserData("Home")
rb2.setUserData("Calendar");
rb3.setUserData("Contacts");

final ToggleGroup group = new ToggleGroup();

group.selectedToggleProperty().addListener(
    (ObservableValue<? extends Toggle> ov, Toggle old_toggle, 
    Toggle new_toggle) -> {
        if (group.getSelectedToggle() != null) {
            final Image image = new Image(
                getClass().getResourceAsStream(
                group.getSelectedToggle().getUserData().toString() +
                ".jpg"));
        icon.setImage(image);
    }
});


 

现在我们就可以,通过选择不同的单选按钮来展示不同的图片。

获取单选按钮的焦点

单选按钮的焦点默认是在第一个单选按钮上的,如果你使用setSelected方法设置第二个单选按钮选中的话。那么焦点依旧在第一个按钮上,如下图所示:

我们通过下面的方法,来获得焦点:

 

rb2.setSelected(true);
rb2.requestFocus();


 

注意:经过的实验的结果是。就算使用requestFocus方法之后,焦点还是在第一个按钮上。不明白为什么,如果谁知道,请赐教。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值