Lớp JRadioButton trong Java Swing



Lớp JRadioButton là một trình triển khai của một radio button, một item mà có thể được lựa chọn hoặc không, và hiển thị trạng thái của nó tới người dùng. Lớp này nên được thêm vào trong ButtonGroup để chỉ lựa chọn một radio button.

Dưới đây là cú pháp khai báo cho lớp javax.swing.JRadioButton:

public class JRadioButton
   extends JToggleButton
      implements Accessible

Lớp này kế thừa các phương thức từ các lớp sau:

  • javax.swing.AbstractButton

  • javax.swing.JToggleButton

  • javax.swing.JComponent

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

Các constructor được sử dụng phổ biến của lớp JRadioButton:

JRadioButton(): Tạo một unselected radiobutton không có text.

JRadioButton(String s): Tạo một unselected radiobutton với text đã cho.

JRadioButton(String s, boolean selected): Tạo một radiobutton với text đã cho và trạng thái là selected.

Các phương thức được sử dụng phổ biến của lớp JRadioButton

AccessibleContext getAccessibleContext(): Lấy AccessibleContext được liên kết với JRadioButton này.

String getUIClassID(): Trả về tên của lớp L&F mà truyền thành phần này.

protected String paramString(): Trả về biểu diễn chuỗi của JRadioButton này.

void updateUI(): Phục hồi thuộc tính UI về một giá trị từ L&F hiện tại.

Chương trình ví dụ về lớp JRadioButton

import javax.swing.*;  
public class Radio {  
JFrame f;  
  
Radio(){  
f=new JFrame();  
  
JRadioButton r1=new JRadioButton("A) Male");  
JRadioButton r2=new JRadioButton("B) FeMale");  
r1.setBounds(50,100,70,30);  
r2.setBounds(50,150,70,30);  
  
ButtonGroup bg=new ButtonGroup();  
bg.add(r1);bg.add(r2);  
  
f.add(r1);f.add(r2);  
  
f.setSize(300,300);  
f.setLayout(null);  
f.setVisible(true);  
}  
public static void main(String[] args) {  
    new Radio();  
}  
}  

Chương trình ví dụ khác về lớp JRadioButton

SwingControlDemo.java
package com.vietjack.gui;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class SwingControlDemo {
    
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;   public SwingControlDemo(){
      prepareGUI();
   }   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();      
      swingControlDemo.showRadioButtonDemo();
   }   private void prepareGUI(){
      mainFrame = new JFrame("Vi du Java Swing");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);          statusLabel.setSize(350,100);      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }   private void showRadioButtonDemo(){
      headerLabel.setText("Control in action: RadioButton");       final JRadioButton radApple = new JRadioButton("Apple", true);
      final JRadioButton radMango = new JRadioButton("Mango");
      final JRadioButton radPeer = new JRadioButton("Peer");      radApple.setMnemonic(KeyEvent.VK_C);
      radMango.setMnemonic(KeyEvent.VK_M);
      radPeer.setMnemonic(KeyEvent.VK_P);      radApple.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {         
            statusLabel.setText("Apple RadioButton: " 
            + (e.getStateChange()==1?"checked":"unchecked"));
         }           
      });      radMango.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {             
            statusLabel.setText("Mango RadioButton: " 
            + (e.getStateChange()==1?"checked":"unchecked")); 
         }           
      });      radPeer.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {             
            statusLabel.setText("Peer RadioButton: " 
            + (e.getStateChange()==1?"checked":"unchecked"));
         }           
      });      //Group the radio buttons.
      ButtonGroup group = new ButtonGroup();
      group.add(radApple);
      group.add(radMango);
      group.add(radPeer);      controlPanel.add(radApple);
      controlPanel.add(radMango);
      controlPanel.add(radPeer);             mainFrame.setVisible(true);  
   }
}

Lớp ButtonGroup trong Java Swing

Lớp ButtonGroup có thể được sử dụng để nhóm nhiều lớp lại với nhau, để mà tại một thời điểm, chỉ có một nút được lựa chọn. Ví dụ:

import javax.swing.*;  
import java.awt.event.*;  
class RadioExample extends JFrame implements ActionListener{  
JRadioButton rb1,rb2;  
JButton b;  
RadioExample(){  
  
rb1=new JRadioButton("Male");  
rb1.setBounds(100,50,100,30);  
  
rb2=new JRadioButton("Female");  
rb2.setBounds(100,100,100,30);  
  
ButtonGroup bg=new ButtonGroup();  
bg.add(rb1);bg.add(rb2);  
  
b=new JButton("click");  
b.setBounds(100,150,80,30);  
b.addActionListener(this);  
  
add(rb1);add(rb2);add(b);  
  
setSize(300,300);  
setLayout(null);  
setVisible(true);  
}  
public void actionPerformed(ActionEvent e){  
if(rb1.isSelected()){  
JOptionPane.showMessageDialog(this,"Ban la male");  
}  
if(rb2.isSelected()){  
JOptionPane.showMessageDialog(this,"Ban la female");  
}  
}  
public static void main(String args[]){  
new RadioExample();  
}}  

Mọi người cho thể tham gia khóa học thứ 4 của vietjackteam vào cuối tháng 09/2017 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : Khóa học Java.Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Khóa học cũng đưa 200 câu hỏi phỏng vấn java trên https://www.javatpoint.com/corejava-interview-questions vào nội dung để giúp các bạn dễ dàng vượt qua kì phỏng vấn

Mọi người có thể xem demo nội dung khóa học tại địa chỉ Video demo khóa học Offline

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Thông tin khóa học tại Khóa học Java Online trên Udemy

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.


swing_control_trong_java_swing.jsp

Demo một bài giảng trong khóa học online tại vietjackteam.