在Java中单击JLabel时如何更改JLabel背景

时间:2017-10-26 15:20:28

标签: java swing jlabel

我想使用mouseClicked将我的JLabel背景更改为蓝色。我的JLabel的名字是lblKembali。我尝试了这段代码,当我尝试点击标签时,它没有改变背景。请帮忙。谢谢。

lblKembali = new JLabel("Kembali");
lblKembali.setPreferredSize(new Dimension(400,30));
lblKembali.setMaximumSize(getPreferredSize());    
lblKembali.addMouseListener(new java.awt.event.MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                    lblKembali.setBackground(Color.BLUE);
            }
        });

1 个答案:

答案 0 :(得分:2)

默认情况下,JLabel是非透明的,因此它的背景不会被绘制。您需要在创建标签时使标签不透明:

lblKembali = new JLabel("Kembali");
lblKembali.setOpaque( true );

此外,您可以使您的侦听器更通用,以便通过执行以下操作由多个组件共享:

public void mouseClicked(MouseEvent e) 
{
    Component c = e.getComponent();
    c.setBackground(Color.BLUE);
}