bar*_*der 6 java swing transparency jlabel mouseevent
我有一个JLabel,当鼠标进入它时会改变它的背景颜色.我遇到的问题是我希望JLabel在鼠标退出后变得透明.
我可以用一个声明来完成这个吗?
kle*_*tra 18
这是德国的一个懒惰的假期,所以结合两个答案:
final JLabel label = new JLabel("some label with a nice text");
label.setBackground(Color.YELLOW);
MouseAdapter adapter = new MouseAdapter() {
/**
* @inherited <p>
*/
@Override
public void mouseEntered(MouseEvent e) {
label.setOpaque(true);
label.repaint();
}
/**
* @inherited <p>
*/
@Override
public void mouseExited(MouseEvent e) {
label.setOpaque(false);
label.repaint();
}
};
label.addMouseListener(adapter);
Run Code Online (Sandbox Code Playgroud)
问题(实际上,我倾向于将其视为一个错误)是设置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);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19503 次 |
最近记录: |