在 Java Netbeans 中悬停在 JButtons 上
Hovering on JButtons in Java Netbeans
现在我的 JFrame 上有多个按钮,当按钮悬停时,按钮的颜色会改变,当我的光标离开按钮后,按钮的颜色会变回原来的颜色。现在我将这段代码应用到我所有的按钮:
private void btn1MouseEntered(java.awt.event.MouseEvent evt) {
btn1.setBackground(new Color(236, 252, 250));
}
private void btn1MouseExited(java.awt.event.MouseEvent evt) {
btn1.setBackground(new Color(241, 241, 241));
}
这让我觉得有点冗余,是否可以编写一个更短的代码,让按钮自行检查它是否悬停并改变颜色,但在悬停后又变回原来的颜色?
Which makes me feel there's little bit of redundancy
您可以轻松创建一个由所有按钮共享的通用侦听器:
MouseListener ml = new MouseAdapter()
{
public void mouseEntered(java.awt.event.MouseEvent evt)
{
Component c = evt.getComponent();
c.setBackground(new Color(236, 252, 250));
}
public void mouseExited(java.awt.event.MouseEvent evt)
{
Component c = evt.getComponent();
c.setBackground(new Color(241, 241, 241));
}
}
然后在您的代码中,您可以将侦听器添加到按钮:
btn1.addMouseListener( ml );
btn2.addMouseListener( ml );
现在我的 JFrame 上有多个按钮,当按钮悬停时,按钮的颜色会改变,当我的光标离开按钮后,按钮的颜色会变回原来的颜色。现在我将这段代码应用到我所有的按钮:
private void btn1MouseEntered(java.awt.event.MouseEvent evt) {
btn1.setBackground(new Color(236, 252, 250));
}
private void btn1MouseExited(java.awt.event.MouseEvent evt) {
btn1.setBackground(new Color(241, 241, 241));
}
这让我觉得有点冗余,是否可以编写一个更短的代码,让按钮自行检查它是否悬停并改变颜色,但在悬停后又变回原来的颜色?
Which makes me feel there's little bit of redundancy
您可以轻松创建一个由所有按钮共享的通用侦听器:
MouseListener ml = new MouseAdapter()
{
public void mouseEntered(java.awt.event.MouseEvent evt)
{
Component c = evt.getComponent();
c.setBackground(new Color(236, 252, 250));
}
public void mouseExited(java.awt.event.MouseEvent evt)
{
Component c = evt.getComponent();
c.setBackground(new Color(241, 241, 241));
}
}
然后在您的代码中,您可以将侦听器添加到按钮:
btn1.addMouseListener( ml );
btn2.addMouseListener( ml );