使JLabel背景再次透明

使JLabel背景再次透明,第1张

使JLabel背景再次透明

在德国,这是一个懒惰的假期,因此结合以下两个答案:

    final JLabel label = new JLabel("some label with a nice text");    label.setBackground(Color.YELLOW);    MouseAdapter adapter = new MouseAdapter() {                @Override        public void mouseEntered(MouseEvent e) { label.setOpaque(true); label.repaint();        }                @Override        public void mouseExited(MouseEvent e) { label.setOpaque(false); label.repaint();        }    };    label.addMouseListener(adapter);

问题(实际上,我倾向于将其视为错误)是设置opaque属性不会触发适当的重绘。JComponent触发了change事件,但似乎没人在听:

public void setOpaque(boolean isOpaque) {    boolean oldValue = getFlag(IS_OPAQUE);    setFlag(IS_OPAQUE, isOpaque);    setFlag(OPAQUE_SET, true);    firePropertyChange("opaque", oldValue, isOpaque);}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5131325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存