首页 > 编程语言 >JavaFX单选按钮

JavaFX单选按钮

时间:2024-08-25 21:26:33浏览次数:7  
标签:javafx JavaFX RadioButton 单选 按钮 new import

单选按钮通常组合在一起,以便用户进行单选,即用户只能在单选按钮列表中选择一个项目。 例如,当选择鞋子尺寸时,我们通常从列表中选择一个尺寸。

单选按钮只能执行:选择取消选择

以下代码显示,当放置在ToggleGroup中时,只能选择一个RadioButton

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class Main extends Application {
  @Override
  public void start(Stage stage) {
    HBox root = new HBox();
    Scene scene = new Scene(root, 300, 150);
    stage.setScene(scene);
    stage.setTitle("");

    ToggleGroup group = new ToggleGroup();
    RadioButton button1 = new RadioButton("select first");
    button1.setToggleGroup(group);
    button1.setSelected(true);
    RadioButton button2 = new RadioButton("select second");
    button2.setToggleGroup(group);

    root.getChildren().add(button1);
    root.getChildren().add(button2);

    scene.setRoot(root);
    stage.show();
  }

  public static void main(String[] args) {
    launch(args);
  }
}

Java

上面的代码生成以下结果。

创建单选按钮

javafx.scene.control包中的RadioButton类有两个构造函数。
要为其标签创建一个带有空字符串的单选按钮,然后再设置标签。

RadioButton rb = new RadioButton();
//setting a text label
rb.setText("Size 9");

Java

要创建具有指定标签的单选按钮。

RadioButton rb2 = new RadioButton("Size 9");

Java

setSelected()方法带有true参数可以显式选择单选按钮。
isSelected()方法返回用户是否选择了特定单选按钮。
setGraphic()方法可以为RadioButton安装一个图像。

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

Java

单选按钮组

单选按钮通常在组中使用。
我们可以添加单选按钮到ToggleGroup对象,它将管理它们,使得一次只能选择一个单选按钮。

以下代码创建一个切换组和三个单选按钮,然后将每个单选按钮添加到切换组,并指定应选择哪个按钮。

ToggleGroup group = new ToggleGroup();

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

RadioButton rb2 = new RadioButton("Size 10");
rb2.setToggleGroup(group);

RadioButton rb3 = new RadioButton("Size 11");
rb3.setToggleGroup(group);

Java

单选按钮事件

我们通过ToggleGroup处理单选按钮选择的事件。更改侦听器添加到ToggleGroup。为每个单选按钮分配了用户数据。
ChangeListener对象检查组中的选定项目。 所选单选按钮从getSelectedToggle方法返回。然后通过调用getUserData方法获取用户数据。

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) {
            System.out.println(group.getSelectedToggle().getUserData().toString());
        }    
    }
});

Java

完整的源代码,如下所示 -

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.RadioButton;
import javafx.scene.control.Toggle;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
// at W  W W.Y iI  bAI.C OM
public class Main extends Application {
  public static void main(String[] args) {
    launch(args);
  }

  @Override
  public void start(Stage stage) {
    Scene scene = new Scene(new Group());
    stage.setWidth(250);
    stage.setHeight(150);

    final ToggleGroup group = new ToggleGroup();

    RadioButton rb1 = new RadioButton("A");
    rb1.setToggleGroup(group);
    rb1.setUserData("A");

    RadioButton rb2 = new RadioButton("B");
    rb2.setToggleGroup(group);
    rb2.setUserData("B");

    RadioButton rb3 = new RadioButton("C");
    rb3.setToggleGroup(group);
    rb3.setUserData("C");

    group.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
      public void changed(ObservableValue<? extends Toggle> ov,
          Toggle old_toggle, Toggle new_toggle) {
        if (group.getSelectedToggle() != null) {
          System.out.println(group.getSelectedToggle().getUserData().toString());
        }
      }
    });

    HBox hbox = new HBox();
    VBox vbox = new VBox();

    vbox.getChildren().add(rb1);
    vbox.getChildren().add(rb2);
    vbox.getChildren().add(rb3);
    vbox.setSpacing(10);

    hbox.getChildren().add(vbox);
    hbox.setSpacing(50);
    hbox.setPadding(new Insets(20, 10, 10, 20));

    ((Group) scene.getRoot()).getChildren().add(hbox);
    stage.setScene(scene);
    stage.show();
  }
}

Java

上面代码执行结果如下所示 -

单选按钮焦点

在单选按钮组中,默认情况下第一个按钮最初具有焦点。
当使用setSelected方法选择单选按钮时,还应该使用requestFocus函数将焦点更改为所选单选按钮。

rb.setSelected(true);
rb.requestFocus();

标签:javafx,JavaFX,RadioButton,单选,按钮,new,import
From: https://blog.csdn.net/unbelievevc/article/details/141310344

相关文章

  • 如何创建图片按钮
    文章目录1.概念介绍2.使用方法2.1filled风格2.2filledTonal风格2.3outlined风格3.代码与效果3.1示例代码3.2运行效果4.内容总结我们在上一章回中介绍了"如何修改NavigationBar组件的形状"相关的内容,本章回中将介绍IconButtion组件.闲话休提,让我们一起Talk......
  • 原神4.8版本重点培养和抽到角色数据表:修改了添加倒计时.隐藏了抽到角色数据表删除按钮
    <!DOCTYPEhtml><htmllang="zh-cn"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>原神4.8版本抽到角色和重点培养数据表<......
  • 复选框单选
     constlastDataHandle=ref(null);//上次选择的dataHandle值constdataHandle:any=ref([]);constdataHandleALLList=[{label:'无',value:0},{label:'上传照片',value:1},{label:'二维建模',value:2},];//单选function......
  • 基础组件:单选开关和复选框
    一、简介Material组件库中提供了Material风格的单选开关Switch和复选框Checkbox,虽然它们都是继承自StatefulWidget,但它们本身不会保存当前选中状态,选中状态都是由父组件来管理的。当Switch或Checkbox被点击时,会触发它们的onChanged回调,我们可以在此回调中处理选中状态改变逻辑......
  • 基础组件:按钮
    Material组件库中提供了多种按钮组件如ElevatedButton、TextButton、OutlinedButton等,它们都是直接或间接对RawMaterialButton组件的包装定制,所以他们大多数属性都和RawMaterialButton一样。在介绍各个按钮时我们先介绍其默认外观,而按钮的外观大都可以通过属性来自定义,我们在后面......
  • 点按钮相机飞行到设备前观察
    效果如下:一、原理二、完整代码:1、html  <divclass="pos">    <divid="A"class="bu">设备A</div>    <divid="B"class="bu"style="margin-left:10px;">设备B</div>   ......
  • avalonia学习之按钮
    Button按钮是一个对指针动作做出反应的控件(并且有一些键盘等效物)。当指针向下时,它以按下状态的形式呈现视觉反馈。指向指针释放序列的指针被解释为点击;并且这种行为是可配置的。在确定用户是否按下按钮时,始终使用Click事件而不是PointerPressed。单击是特定于按钮的高级......
  • 怎么对前端的一些按钮做一个权限校验
    在一般情况下,我们需要对一些按钮做一个权限校验,来保证只有有权限的用户才能看到1.创建一个js文件,来写我们的全局方法我的方法是这样的importVuefrom'vue';Vue.mixin({methods:{hasAuth(perm){varauthority=this.$store.state.menu.......
  • 开始搭建每一步图片处理的按钮
    1.读取图片按钮(1)创建主窗体以及读取图片按钮(按钮2)和执行算法流程按钮(按钮1)(2)创建读取图片窗体(窗体1)和选择文件夹按钮(按钮3)(3)进行构造函数RunPro(4)对按钮1进行点击事件其中,调用构造函数RunPro,来获取图片所在文件夹并对文件夹内的图片进行遍历(5)按钮2点击事件,跳转到窗体1......
  • 点击按钮实现文件导入/文件上传
    <el-uploadref="upload":accept="上传什么类型的文件"action="faker":limit="1":show-file-list="false":on-change="handleCha......