JButton изменение значка с помощью мышиных слушателей - PullRequest
0 голосов
/ 02 января 2019

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

    });

Заранее благодарен за помощь:)

...