Я хочу создать эффект для кнопок 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);
}
});
Заранее благодарен за помощь:)