openplanning

Hướng dẫn và ví dụ JavaFX RadioButton

Xem thêm các chuyên mục:

Nhóm phát triển của chúng tôi vừa ra mắt website langlearning.net học tiếng Anh, Nga, Đức, Pháp, Việt, Trung, Hàn, Nhật, ... miễn phí cho tất cả mọi người.
Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất.
Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.
Hãy theo dõi chúng tôi trên Fanpage để nhận được thông báo mỗi khi có bài viết mới. Facebook

1- JavaFX RadioButton

RadioButton là một class mở rộng từ ToggleButton, cũng như một ToggleButton, radio button có hai trạng thái chọn và không được chọn. Khi các RadioButton được kết hợp (combined) vào trong một nhóm, tại một thời điểm chỉ có nhiều nhất một radio button có trạng thái được chọn. Tuy nhiên khác với ToggleButton, người dùng chỉ có thể bỏ chọn một RadioButton bằng cách chọn một RadioButton khác nằm trong cùng một nhóm.
ToggleButton:
RadioButton:

// Group
ToggleGroup group = new ToggleGroup();

// Radio 1: Male
RadioButton button1 = new RadioButton("Male");
button1.setToggleGroup(group);
button1.setSelected(true);

// Radio 3: Female.
RadioButton button2 = new RadioButton("Female");
button2.setToggleGroup(group);
Bạn cũng có thể sét đặt các biểu tượng cho RadioButton bởi phương thức setGraphic.

InputStream is1 = getClass().getResourceAsStream("/org/o7planning/javafx/icon/male-16.png");
Image img1= new Image(is1);

radioButton.setGraphic(new ImageView(img1));

2- Ví dụ với RadioButton

RadioButtonDemo.java

package org.o7planning.javafx.radiobutton;

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

public class RadioButtonDemo extends Application {

    @Override
    public void start(Stage stage) {

        Label label = new Label("Your Gender: ");

        // Group
        ToggleGroup group = new ToggleGroup();

        // Radio 1: Male
        RadioButton button1 = new RadioButton("Male");
        button1.setToggleGroup(group);
        button1.setSelected(true);

        // Radio 3: Female.
        RadioButton button2 = new RadioButton("Female");
        button2.setToggleGroup(group);

        HBox root = new HBox();
        root.setPadding(new Insets(10));
        root.setSpacing(5);
        root.getChildren().addAll(label, button1, button2);

        Scene scene = new Scene(root, 400, 150);
        stage.setScene(scene);
        stage.setTitle("JavaFX RadioButton (o7planning.org)");
        scene.setRoot(root);
        stage.show();
    }

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

}

3- Xử lý sự kiện cho RadioButton

Cụ thể, ứng dụng sẽ thực hiện một hành động khi một trong các radio button trong nhóm được chọn.
RadioButtonEventDemo.java

package org.o7planning.javafx.radiobutton;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Label;
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.paint.Color;
import javafx.stage.Stage;

@SuppressWarnings("unused")
public class RadioButtonEventDemo extends Application {

   @Override
   public void start(Stage stage) {

       Label label = new Label("Your Gender: ");
       Label labelInfo = new Label();
       labelInfo.setTextFill(Color.BLUE);

       // Group
       ToggleGroup group = new ToggleGroup();

       group.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
           @Override
           public void changed(ObservableValue<? extends Toggle> ov, Toggle old_toggle, Toggle new_toggle) {
          
               // Có lựa chọn
               if (group.getSelectedToggle() != null) {
                   RadioButton button = (RadioButton) group.getSelectedToggle();
                   System.out.println("Button: " + button.getText());
                   labelInfo.setText("You are " + button.getText());
               }
           }
       });

       // Radio 1: Male
       RadioButton button1 = new RadioButton("Male");
       button1.setToggleGroup(group);
       button1.setSelected(true);

       // Radio 2: Female.
       RadioButton button2 = new RadioButton("Female");
       button2.setToggleGroup(group);

       HBox root = new HBox();
       root.setPadding(new Insets(10));
       root.setSpacing(5);
       root.getChildren().addAll(label, button1, button2, labelInfo);

       Scene scene = new Scene(root, 400, 150);
       stage.setScene(scene);
       stage.setTitle("JavaFX RadioButton (o7planning.org)");
       scene.setRoot(root);
       stage.show();
   }

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

}

Xem thêm các chuyên mục: