4

I'm doing a board game project and I'm representing cells by Jbuttons. I made mouseLitener to all the buttons. My question is how to change the icon of the Jbutton when it is clicked ?

mKorbel
  • 109,525
  • 20
  • 134
  • 319

3 Answers3

7

I'm doing a board game project and I'm representing cells by Jbuttons.

  • use JToggleButton for game based on buttons array and mouse events, rather than JButton

  • use ButtonModel instead of any XxxListener

  • JButton and JToggleButton has implemented these methods in the API directly

.

setIcon(Icon i);
setRolloverIcon(Icon i);
setPressedIcon(Icon i);
setDisabledIcon(Icon i);
mKorbel
  • 109,525
  • 20
  • 134
  • 319
5
yourButton.addActionListener(new ActionListener() {
@Override
    public void actionPerformed(ActionEvent e) {
        yourButton.setIcon(new ImageIcon("yourImage"));
    }
});

ActionListener is called when you click on the JButton. This way is used most frequently.

mKorbel
  • 109,525
  • 20
  • 134
  • 319
Simon Dorociak
  • 33,374
  • 10
  • 68
  • 106
4

As an alternative, also consider setText() using unicode glyphs, illustrated here.

trashgod
  • 203,806
  • 29
  • 246
  • 1,045