JCheckBox
它继承自JToggleButton
,因此单击文本将具有单击复选框的相同效果。但现在我需要一个JCheckBox
这样的行为:
- 单击复选框:选中或取消选中复选框;
- 单击文本:不要更新复选框,而是发出
ActionEvent
.
目前我正在使用一个丑陋的 hack,方法是覆盖中的processMouseEvent()
函数JCheckBox
,并且仅super
在鼠标单击CheckBox
. 代码是这样的:
public class MyCheckBox extends JCheckBox {
@Override
protected void processMouseEvent(MouseEvent e) {
if (e.getX() < this.getHeight()) {
super.processMouseEvent(e);
} else {
this.fireActionPerformed(new ActionEvent(this, 0, "click on text"))
}
}
}
有没有更直接的解决方案?