现在我在我的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));
} 这让我觉得有一点点冗余,是否有可能写一个更短的代码,按钮将检查自己是否盘旋和改变颜色,但回到原来的颜色后,没有悬停?
发布于 2017-10-07 18:44:23
这让我觉得有点多余
您可以轻松地创建一个通用侦听器,由所有按钮共享:
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 );https://stackoverflow.com/questions/46623655
复制相似问题