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

标签 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);
            }
        });

最佳答案

默认情况下,JLabel 是非不透明的,因此不会绘制其背景。创建标签时需要将其设置为不透明:

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

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

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

关于java - 如何在Java中单击JLabel时更改JLabel背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46958106/

相关文章:

java - 在运行时设置 JLabel 文本

java - 如何让我的输出包含我需要的空格?

java - KeyListener 未检测到按键

java - 如何在 Netbeans 中为未修饰的 JFrame 添加阴影

java - MVC 模式 JButton ActionListener 不响应

java - JLabel自定义事件setText

java - MongoDB:使用java驱动程序获取数组字段的元素

java - 使用 jdbctemplate/jdbc for Hana db 获取按序列生成的主键

java - JTextField 的闪烁颜色

java - 执行程序时不出现JLabel