radiobuttongroup.java

来自「java learn PPT java learn PPT java learn」· Java 代码 · 共 96 行

JAVA
96
字号
     package magic.awtex;

     import java.awt.*;
     import java.awt.event.*;
     import java.awt.geom.*;
     import java.util.*;

     // 维护一组按钮,这样在任意时刻只有一个被选中
   public class RadioButtonGroup extends Object
   {
        // 用来装单选按钮的动态可增长vector
        protected Vector buttons;

        // 遍历上述Vector的枚举器
        protected Enumeration e;

        // 创建一个新的RadioButtonGroup对象
        public RadioButtonGroup()
        {
             buttons = new Vector();
        }

        // 将传入的单选按钮添加到vector中去
        public void add(RadioButton2D rb)
        {
             buttons.add(rb);
        }

        // 得到当前所选中的单选按钮
        //如果没有按钮被选中的话则返回null
        public RadioButton2D getSelection()
        {
             for(e = buttons.elements(); e.hasMoreElements(); )
             {
                  RadioButton2D rb = (RadioButton2D)e.nextElement();

                  if(rb.isSelected())
                  {
                       return rb;
                  }
             }

             return null;
        }

        // 整组按钮的可用/不可用状态
        public void setEnabled(boolean b)
        {
             for(e = buttons.elements(); e.hasMoreElements(); )
             {
                  ((RadioButton2D) e.nextElement()).setEnabled(b);
             }
        }

        // 设置整个按钮组的可见性
        public void setVisible(boolean v)
        {
             for(e = buttons.elements(); e.hasMoreElements(); )
             {
                  ((RadioButton2D) e.nextElement()).setVisible(v);
             }
        }

        // 更新按钮组,让除了传入的按钮之外的按钮设置为未选中状态
        public void updateGroup(RadioButton2D rb)
        {
             for(e = buttons.elements(); e.hasMoreElements(); )
             {
                  Object o = e.nextElement();
                  if(rb != o)
                  {
                       ((RadioButton2D) o).setSelected(false);
                  }
             }
        }

        // 绘制组中的每一个按钮
        public void paint(Graphics2D g2d)
        {
             for(e = buttons.elements(); e.hasMoreElements(); )
             {
                  ((RadioButton2D)e.nextElement()).paint(g2d);
             }
        }

        // 在给定的位置绘制组中的每一个按钮
        public void paint(Graphics2D g2d, double dx, double dy)
        {
             for(e = buttons.elements(); e.hasMoreElements(); )
             {
                  ((RadioButton2D)e.nextElement()).paint(g2d, dx, dy);
             }
        }

   }    // RadioButtonGroup

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?