J Label和J复选框

时间:2017-01-05 06:00:31

标签: java swing user-interface jlabel jcheckbox

我有一个Jlabel和一个复选框。我想这样做,以便我可以点击Jlabel,勾选复选框。我需要它作为标签,因为我将它用于其他东西。通常我只做一个带有一些文本的复选框,但这次我需要一个标签和复选框,我需要标签勾选复选框。以下是我的代码。我试图向标签添加一个动作监听器,但我得到一个错误,说它是一个未定义的类型。谢谢......

 JCheckBox _mycheckbox = new JCheckBox();
 JLabel _mylabel = new JLabel(_mylabel);

2 个答案:

答案 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                    
    }
});