在德国,这是一个懒惰的假期,因此结合以下两个答案:
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);}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)