[英]how to change JLabel color
我有改变JLabel颜色的问题。 我正在使用三个JLabel
变量。 我将鼠标事件放在这个JLabel
变量上。 我运行无一不是改变颜色,当我在entring鼠标JLabels
。 我的确是,当我在JLabel
变量上输入鼠标时,一个JLabel
改变了颜色。
请解决这个问题。
entry.addMouseListener(this);
entry.setOpaque(true);
profile.addMouseListener(this);
profile.setOpaque(true);
public void mouseClicked(MouseEvent mc)
{
}
public void mouseEntered(MouseEvent me)
{
entry.setBackground(color);
profile.setBackground(color);
}
public void mouseExited(MouseEvent me)
{
entry.setBackground(Color.white);
profile.setBackground(Color.white);
}
public void mousePressed(MouseEvent mp)
{
}
public void mouseReleased(MouseEvent mr)
{
}
您的问题是方法setBackground()
,更改setForeground()
:
entry.addMouseListener(this);
entry.setOpaque(true);
profile.addMouseListener(this);
profile.setOpaque(true);
public void mouseClicked(MouseEvent mc)
{}
public void mouseEntered(MouseEvent me)
{
entry.setForeground(Color.red);
profile.setForeground(Color.red);
}
public void mouseExited(MouseEvent me)
{
entry.setForeground(Color.white);
profile.setForeground(Color.white);
}
public void mousePressed(MouseEvent mp)
{}
public void mouseReleased(MouseEvent mr)
{}
不完全确定你在问什么......我认为你的问题是你有两个标签,当你将鼠标输入其中一个标签时,你只想让那个标签有一个红色背景,而不是两个。
为此,您可以使用e.getComponent()
获取触发鼠标事件的标签,然后仅为该标签设置背景。 此外,您可能希望使用setBackground(null)
重置背景颜色,因为底层框架的背景可能并不总是白色。 最后,您可以使用MouseAdapter
类而不是MouseListener
,为您不需要的所有其他方法提供默认值(no-op)。
MouseListener ma = new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
e.getComponent().setBackground(Color.RED);
}
public void mouseExited(MouseEvent e) {
e.getComponent().setBackground(null);
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.