Hướng dẫn và ví dụ JavaFX RadioButton
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);
}
}
Các hướng dẫn lập trình JavaFX
- Mở một cửa sổ (window) mới trong JavaFX
- Hướng dẫn và ví dụ JavaFX ChoiceDialog
- Hướng dẫn và ví dụ JavaFX Alert Dialog
- Hướng dẫn và ví dụ JavaFX TextInputDialog
- Cài đặt e(fx)clipse cho Eclipse (Bộ công cụ lập trình JavaFX)
- Cài đặt JavaFX Scene Builder cho Eclipse
- Hướng dẫn lập trình JavaFX cho người mới bắt đầu - Hello JavaFX
- Hướng dẫn và ví dụ JavaFX FlowPane Layout
- Hướng dẫn và ví dụ JavaFX TilePane Layout
- Hướng dẫn và ví dụ JavaFX HBox, VBox Layout
- Hướng dẫn và ví dụ JavaFX BorderPane Layout
- Hướng dẫn và ví dụ JavaFX AnchorPane Layout
- Hướng dẫn và ví dụ JavaFX TitledPane
- Hướng dẫn và ví dụ JavaFX Accordion
- Hướng dẫn và ví dụ JavaFX ListView
- Hướng dẫn và ví dụ JavaFX Group
- Hướng dẫn và ví dụ JavaFX ComboBox
- Hướng dẫn sử dụng các phép biến hình (Transformations) trong JavaFX
- Các hiệu ứng (effects) trong JavaFX
- Hướng dẫn và ví dụ JavaFX GridPane Layout
- Hướng dẫn và ví dụ JavaFX StackPane Layout
- Hướng dẫn và ví dụ JavaFX ScrollPane
- Hướng dẫn và ví dụ JavaFX WebView và WebEngine
- Hướng dẫn và ví dụ JavaFX HTMLEditor
- Hướng dẫn và ví dụ JavaFX TableView
- Hướng dẫn và ví dụ JavaFX TreeView
- Hướng dẫn và ví dụ JavaFX TreeTableView
- Hướng dẫn và ví dụ JavaFX Menu
- Hướng dẫn và ví dụ JavaFX ContextMenu
- Hướng dẫn và ví dụ JavaFX Image và ImageView
- Hướng dẫn và ví dụ JavaFX Label
- Hướng dẫn và ví dụ JavaFX Hyperlink
- Hướng dẫn và ví dụ JavaFX Button
- Hướng dẫn và ví dụ JavaFX ToggleButton
- Hướng dẫn và ví dụ JavaFX RadioButton
- Hướng dẫn và ví dụ JavaFX MenuButton và SplitMenuButton
- Hướng dẫn và ví dụ JavaFX TextField
- Hướng dẫn và ví dụ JavaFX PasswordField
- Hướng dẫn và ví dụ JavaFX TextArea
- Hướng dẫn và ví dụ JavaFX Slider
- Hướng dẫn và ví dụ JavaFX Spinner
- Hướng dẫn và ví dụ JavaFX ProgressBar và ProgressIndicator
- Hướng dẫn và ví dụ JavaFX ChoiceBox
- Hướng dẫn và ví dụ JavaFX Tooltip
- Hướng dẫn và ví dụ JavaFX DatePicker
- Hướng dẫn và ví dụ JavaFX ColorPicker
- Hướng dẫn và ví dụ JavaFX FileChooser và DirectoryChooser
- Hướng dẫn và ví dụ JavaFX PieChart
- Hướng dẫn và ví dụ JavaFX AreaChart và StackedAreaChart
- Hướng dẫn và ví dụ JavaFX BarChart và StackedBarChart
- Hướng dẫn và ví dụ JavaFX Line
- Hướng dẫn và ví dụ JavaFX Rectangle và Ellipse
Show More