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ùn
Trang 1Lớ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:
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
Trang 2Cá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.*;
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);
}
Trang 3public 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.*;
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);
Trang 4mainFrame.setLayout(new GridLayout( , 1));
mainFrame.addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent windowEvent){
System.exit( );
}
});
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()
Trang 5public void itemStateChanged(ItemEvent e) {
statusLabel.setText("Apple RadioButton: "
+ ( getStateChange()==1 "checked":"unchecked"));
}
});
radMango.addItemListener(new ItemListener()
public void itemStateChanged(ItemEvent e) {
statusLabel.setText("Mango RadioButton: "
+ ( getStateChange()==1 "checked":"unchecked"));
}
});
radPeer.addItemListener(new ItemListener()
public void itemStateChanged(ItemEvent e) {
statusLabel.setText("Peer RadioButton: "
+ ( 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);
}
Trang 6Lớ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( );
setSize(300,300);
setLayout(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
Trang 7if(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();
}}