在swing中创建一个复选框很容易,如:
JCheckBox checkbox = new JCheckBox("hello")
问题是我还想将其他一些值与此checkbox
相关联,例如另一个数字99
但是我找不到JCheckBox
做任何方法,怎么做?
答案 0 :(得分:1)
选项3。
你真的需要存储很多值......扩展它......
public class MySuperStoreAlotOfValuesCheckbox extends JCheckBox{
private static final long serialVersionUID = 1L;
private int theInt;
... all the values in the world...
public MySuperStoreAlotOfValuesCheckbox(String text){
super(text);
}
public MySuperStoreAlotOfValuesCheckbox(String text, int theInt){
super(text);
this.theInt = theInt;
}
}
@mKorbel在评论中建议选项4
checkbox.putClientProperty("myInt",99);
clientProperty
字典不是为了支持对JComponent的大规模扩展,也不应该在设计新组件时将其视为子类化的替代。
答案 1 :(得分:0)
选项1:使用Map将复选框与值相关联。
Map<JCheckBox, Integer> map = new HashMap<JCheckBox, Integer>();
map.put(checkbox, 99);
int value = map.get(checkbox);
选项2:使用JCheckBox#setActionCommand(String cmd)
checkbox.setActionCommand("99");
int value = new Integer(checkbox.getActionCommand());