我有一个Jlabel和一个复选框。我想这样做,以便我可以点击Jlabel,勾选复选框。我需要它作为标签,因为我将它用于其他东西。通常我只做一个带有一些文本的复选框,但这次我需要一个标签和复选框,我需要标签勾选复选框。以下是我的代码。我试图向标签添加一个动作监听器,但我得到一个错误,说它是一个未定义的类型。谢谢......
JCheckBox _mycheckbox = new JCheckBox();
JLabel _mylabel = new JLabel(_mylabel);
答案 0 :(得分:2)
简单的方法是将文本分配给复选框本身:
JCheckBox _mycheckbox = new JCheckBox("Tick Me"); //gives you checkbox, along with clickable text
其他选项是在标签上设置动作侦听器以模拟单击复选框:
_mylabel.addActionListener((e)->_mycheckbox.doClick()); //java 8 lambda
在Java 8之前,你可以做到
_mylabel.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent ae){
_mycheckbox.doClick();
}
});
答案 1 :(得分:1)
您可以考虑在JLabel中添加MouseListener
并覆盖mouseClicked()
方法。
_mylabel.addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e){
//do whatever
}
});