Java swing 创建鼠标监听器时发生了显示错误情况。

做的一个panel想给它添加鼠标指向它时颜色变深的效果,在整体上保持半透明,于是我给背景色添加了alpha值,我给多个控件添加了监听器后,发现它会把上一个悬停的控件包括背景显示出来,如图:

有时候甚至会显示其他无关控件。
顺便一提我的控件都是使用setOpaque实现透明,用半透明遮罩实现半透明的。
把alpha值去掉后恢复了正常。
这是什么原因呢?有解决办法吗?望解答。

this.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseEntered(MouseEvent e) {
        setOpaque(true);
        setBackground(new Color(150,163,192,200));
    }

    @Override
    public void mouseExited(MouseEvent e) {
        setBackground(Color.white);
        setOpaque(false);
    }
});

做一下刷新的操作试试,你这个鼠标事件都没有判断控件呀,这个是不是有点问题。

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y