Swing JRadioButton類

2019-10-16 22:10:30

JRadioButton類是無線電鈕的實現 - 可以選擇或取消選擇的項,並向使用者顯示其狀態。

類宣告

以下是javax.swing.JRadioButton類的宣告 -

public class JRadioButton
   extends JToggleButton
      implements Accessible

類建構函式

編號 建構函式 描述
1 JRadioButton() 建立一個沒有設定文字的最初未選中的無線電鈕。
2 JRadioButton(Action a) 建立一個radiobutton範例,屬性取自提供的Action
3 JRadioButton(Icon icon) 使用指定的影象建立最初未選中的無線電鈕,但不顯示文字。
4 JRadioButton(Icon icon, boolean selected) 建立具有指定影象和選擇狀態但沒有文字的無線電鈕。
5 JRadioButton(String text, boolean selected) 建立具有指定文字和選擇狀態的無線電鈕。
6 JRadioButton(String text, Icon icon) 建立一個具有指定文字和影象的無線電鈕,此按鈕最初未被選中。
7 JRadioButton(String text, Icon icon, boolean selected) 建立具有指定文字,影象和選擇狀態的無線電鈕。

類方法

編號 方法 描述
1 AccessibleContext getAccessibleContext() 獲取與此JRadioButton關聯的AccessibleContext
2 String getUIClassID() 返回呈現此元件的L&F類的名稱。
3 protected String paramString() 返回此JRadioButton的字串表示形式。
4 void updateUI() 將UI屬性重置為當前外觀的值。

方法繼承

該類繼承以下類中的方法 -

  • javax.swing.AbstractButton
  • javax.swing.JToggleButton
  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JRadioButton範例

使用編輯器建立以下Java程式:JRadioButtonExample.java



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JRadioButtonExample {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public JRadioButtonExample(){
      prepareGUI();
   }
   public static void main(String[] args){
       JRadioButtonExample  swingControlDemo = new JRadioButtonExample();      
      swingControlDemo.showRadioButtonDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing JRadioButton範例");
      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("Java/Swing", true);
      final JRadioButton radMango = new JRadioButton("Python");
      final JRadioButton radPeer = new JRadioButton("MySQL");

      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("Java/Swing RadioButton: " 
               + (e.getStateChange()==1?"checked":"unchecked"));
         }           
      });
      radMango.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {             
            statusLabel.setText("Python RadioButton: " 
               + (e.getStateChange()==1?"checked":"unchecked")); 
         }           
      });
      radPeer.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {             
            statusLabel.setText("MySQL 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);  
   }
}

執行上面範例程式碼,得到以下結果 -

RadioButton