我想在JButtons上创建一个效果,以便它们在鼠标悬停时和单击时更改其图标,并在单击结束/光标移出时恢复它们。
我创建了3个鼠标侦听器,它们在单击,输入和退出鼠标时会更改按钮的图标。问题是当按下按钮时它会更改它的图标,然后当我将光标移到按钮外时,mouseExcited
函数会进入,因此我无法永久更改它。我想我应该写一些“如果按下”的语句,但是我不知道如何以及在哪里。
p.star.addMouseListener(new java.awt.event.MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println(e.getSource());
ImageIcon starIcon = new ImageIcon("star.png");
p.star.setIcon(starIcon);
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
ImageIcon starIcon = new ImageIcon("star.png");
p.star.setIcon(starIcon);
}
@Override
public void mouseExited(MouseEvent e) {
ImageIcon starIcon = new ImageIcon("star_blue.png");
p.star.setIcon(starIcon);
}
});
在此先感谢您的帮助:)