当前位置: 首页 > 编程笔记 >

如何在JavaFX中将动作设置为RadioButton?

狄凯
2023-03-14
本文向大家介绍如何在JavaFX中将动作设置为RadioButton?,包括了如何在JavaFX中将动作设置为RadioButton?的使用技巧和注意事项,需要的朋友参考一下

单选按钮是一种圆形的按钮。它有两种状态,选择和取消选择。通常,单选按钮使用切换组进行分组,您只能在其中选择一个。

您可以通过实例化javafx.scene.control.RadioButton类(它是ToggleButton类的子类)在JavaFX中创建一个单选按钮。只要按下或释放单选按钮,就会生成操作。您可以使用setToggleGroup()方法将单选按钮设置为组。

将动作设置为RadioButton-

RadioButton类的名为selected的属性指定是否选中当前复选框。如果选中,则其值为true,否则为false。

selectedProperty()方法返回一个布尔属性指示当前是否复选框被选中。如果要执行某些操作以防万一,请选中一个复选框。您可以将侦听器添加到此属性,如下所示:

checkBox2.selectedProperty().addListener(
   //。。。。。
);

示例

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;
import javafx.geometry.Orientation;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.Slider;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class RadioButton_Action extends Application {
   public void start(Stage stage) {
      //创建一个按钮
      Button button = new Button("Hi");
      button.setPrefSize(40, 40);
      //创建一个滑块来调整按钮的大小
      Slider slider = new Slider(40, 200, 40);
      //将其方向设置为“水平”
      slider.setPrefHeight(180);
      slider.setOrientation(Orientation.VERTICAL);
      slider.setShowTickLabels(true);
      slider.setShowTickMarks(true);
      slider.setMajorTickUnit(40);
      slider.setBlockIncrement(20);
      slider.valueProperty().addListener(new ChangeListener<Number>() {
         public void changed(ObservableValue <?extends Number>observable, Number
         oldValue, Number newValue){
            button.setPrefSize((double)newValue, (double)newValue);
         }
      });
      RadioButton prevent = new RadioButton();
      RadioButton reset = new RadioButton();
      ToggleGroup group = new ToggleGroup();
      prevent.setToggleGroup(group);
      reset.setToggleGroup(group);
      prevent.selectedProperty().addListener(
      (ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) ->{
         button.setMinWidth(40);
         button.setPrefWidth(40);
         button.setMaxWidth(40);
         button.setMinHeight(40);
         button.setMaxHeight(40);
         button.setPrefHeight(40);
      });
      reset.selectedProperty().addListener(
      ObservableValue<? extends Boolean> ov, Boolean old_val, Boolean new_val) -> {
         button.setPrefHeight(40);
         button.setPrefWidth(40);
         button.setMinWidth(Button.USE_PREF_SIZE);
         button.setMaxWidth(Button.USE_PREF_SIZE);
         button.setMinHeight(Button.USE_PREF_SIZE);
         button.setMaxHeight(Button.USE_PREF_SIZE);
      });
      //创建窗格
      BorderPane pane = new BorderPane();
      pane.setCenter(button);
      pane.setRight(new HBox(new Label("Prevent Reize"), prevent, new Label("Allow Resize"), reset));
      pane.setLeft(new VBox(new Label("Button Reize"), slider));
      pane.setPadding(new Insets(10, 10, 10, 10));
      //准备场景
      Scene scene = new Scene(pane, 595, 250);
      stage.setTitle("JavaFX Example");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

输出结果


 类似资料:
  • 问题内容: 我正在编写一个JavaFX-8应用程序,想知道是否可以通过CSS 设置(例如)Button的最小或最大宽度。该类定义为,但是如何在CSS中设置负无穷大?JavaFX参考指南将as 和a 定义为以下正则表达式, 所以也许不可能吗? 我尝试(出于娱乐目的)将Java方式分配为负无穷大,并且css- parser接受了该值,但是没有预期的效果。有人可以解释为什么它不打印警告或错误吗? 我已经

  • 问题内容: 我正在尝试使用JavaFX中的WebView入门,但是当尝试打开W​​ebView时,我收到以下所示的错误,我该如何解决此问题? 问题答案: 尝试运行WebView时遇到任何错误时,请确保您的VM选项包含模块javafx.web。 虚拟机选项: 在IntelliJ中,您可以通过转到IDE右上方的“编辑配置”按钮来访问VM选项。

  • 如何在JavaFX中为< code>TextField设置占位符?我怎样才能不使用JavaScript来做这件事呢?

  • 我有一些具有两列的TableView-名称和大小;此表适用于File对象; PropertyValueFactory可以为列获取对象的属性,尝试搜索somenameProrperty、getSomename、isSomename;我需要从文件中获取length()方法。 此代码查看文件名(getName()方法),但长度列为空。知道我可以用factory从文件中获取length()吗?

  • 我试图将图像作为JavaFX场景中的背景,但我的代码不起作用。 我试图在java eclipse中制作一个战舰游戏程序,但我遇到了一个图形问题。 当我第一次尝试运行它时,它工作了,一个新的窗口打开了,中间有一个按钮,但bakcground是空白的。当我尝试在窗口中设置一个图像作为背景时,按下“开始”按钮,什么也没有发生…

  • 问题内容: 我想制作一个UIImageView动画。我声明了NSLayoutConstraintin viewDidLoad并使用了以下代码: 为什么我的图像不动? 问题答案: 在您按下时viewDidLoad,约束引擎尚未 应用,并且视图的起始位置尚未建立。 因此,可以随时在中添加原始约束viewDidLoad,但是您 需要将推迟到animateWithDuration该过程的后面(例如 vie