JButton使用鼠标侦听器更改图标

时间:2019-01-01 22:08:20

标签: button icons mouseevent mouselistener mouseclick-event

我想在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);
    }

    });

在此先感谢您的帮助:)

0 个答案:

没有答案