一个支持为JRadioButton绑定值的类,继承并扩展JRadioButton

2021-03-15 10:49:22 浏览数 (1)

代码语言:javascript复制
import java.awt.Color;
import javax.swing.JRadioButton;
import java.awt.Font;
/**
 * 通过继承JRadioButton来实现为每个radioButton组件指定值
 * @author waitatlee@163.com
 */
public class CustomRadioButton extends JRadioButton{
    private String value = "";
    private Object customObj = null;
    private int fontSize = 18;
    /**
     * 设置radioButton的值
     * @param _value 字符串
     */
    public void setValue(String _value){
        this.value = _value;
    }
    /**
     * 取radioButton的值
     * @return
     */
    public String getValue(){
        return this.value;
    }
    /**
     * 设置与radioButton绑定的自定义对象
     * @param _customObj
     */
    public void setCustomObj(Object _customObj){
        this.customObj = _customObj;
    }
    /**
     * 取与radioButton绑定的自定义对象
     * @return
     */
    public Object getCustomObj(){
        return this.customObj;
    }
    /**
     * 构造方法
     * @param _text 字符串,radioButton后显示的文本
     * @param _value 字符串,radioButton绑定的值
     */
    public CustomRadioButton(String _text,String _value){
        this.setText(_text);
        this.setValue(_value);
        publicSetting();
    }
    /**
     * 构造方法,支持初始化时设定选中状态
     * @param _text 字符串,显示的文本
     * @param _value 字符串,单选框的值
     * @param _selected 布尔型,是否选中
     */
    public CustomRadioButton(String _text,String _value,boolean _selected){
        this.setText(_text);
        this.setValue(_value);
        this.setSelected(_selected);
        publicSetting();
    }
    /**
     * 支持初始化时同时绑定一个自定义对象到radioButton的方法
     * @param _text
     * @param _value
     * @param _obj
     */
    public CustomRadioButton(String _text,String _value,Object _obj){
        this.setText(_text);
        this.setValue(_value);
        this.setCustomObj(_obj);
        this.setSelected(false);
        publicSetting();
    }
    /**
     * 支持同时绑定自定义对象和指定选中状态的构造方法
     * @param _text
     * @param _value
     * @param _obj
     * @param _selected true表示将些radioButton置于选中状态,false表示不选中(默认)
     */
    public CustomRadioButton(String _text,String _value,Object _obj,boolean _selected){
        this.setText(_text);
        this.setValue(_value);
        this.setCustomObj(_obj);
        this.setSelected(_selected);
        publicSetting();
    }
    /**
     * 一些对radioButton的公共设置
     */
    public void publicSetting(){
        //设置边距
        this.setMargin(new java.awt.Insets(10, 35, 0, 0));
        //设置字体样式,粗细,字号
        this.setFont(new Font("宋体",Font.BOLD,fontSize));
        //设置背景颜色
        this.setBackground(Color.WHITE);
    }
}

0 人点赞