http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com Lớp JRadioButton Java Swing Lớp JRadioButton trình triển khai radio button, item mà lựa chọn khơng, hiển thị trạng thái tới người dùng Lớp nên thêm vào ButtonGroup để lựa chọn radio button Dưới cú pháp khai báo cho lớp javax.swing.JRadioButton: public class JRadioButton extends JToggleButton implements Accessible Lớp kế thừa phương thức từ lớp sau: javax.swing.AbstractButton javax.swing.JToggleButton javax.swing.JComponent java.awt.Container java.awt.Component java.lang.Object Các constructor sử dụng phổ biến lớp JRadioButton: JRadioButton(): Tạo unselected radiobutton khơng có text JRadioButton(String s): Tạo unselected radiobutton với text cho JRadioButton(String s, boolean selected): Tạo radiobutton với text cho trạng thái selected http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com Các phương thức sử dụng phổ biến lớp JRadioButton AccessibleContext getAccessibleContext(): Lấy AccessibleContext liên kết với JRadioButton String getUIClassID(): Trả tên lớp L&F mà truyền thành phần protected String paramString(): Trả biểu diễn chuỗi JRadioButton void updateUI(): Phục hồi thuộc tính UI giá trị từ L&F Chương trình ví dụ 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); } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com public static void main(String[] args) { new Radio(); } } Chương trình ví dụ khác 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); http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com 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() { http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com 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); } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com } Lớp ButtonGroup Java Swing Lớp ButtonGroup sử dụng để nhóm nhiều lớp lại với nhau, thời điểm, có nút 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){ http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com 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(); }} http://vietjack.com/ Trang chia sẻ học online miễn phí Page ... action: RadioButton"); final JRadioButton radApple = new JRadioButton( "Apple", true); final JRadioButton radMango = new JRadioButton( "Mango"); final JRadioButton radPeer = new JRadioButton( "Peer");... http://vietjack.com /java_ swing/ index.jsp Copyright © vietjack.com } Lớp ButtonGroup Java Swing Lớp ButtonGroup sử dụng để nhóm nhiều lớp lại với nhau, thời điểm, có nút lựa chọn Ví dụ: import javax .swing. *;... 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