buttons and troubles...

M

man4*.*

I've got 9 buttons that are presented with one icon, and when I press that
button I want to change it, but
I've complicated a little bit... (hope, you'll understand what I need, if
not, I'll send whole code)

button initialization:

JButton[] button = new JButton[9];
{for ( int i = 0; i < 9; i++)
button = new JButton(paint[0]);}

putted 9 ActionListeners:

Container cp = getContentPane();
cp.setLayout(new FlowLayout());
for ( int i = 0; i < 9; i++)
cp.add(button);
for ( int i = 0; i < 9; i++)
button.addActionListener(new AL());

AL is a class that implements ActionListener,
also I've got 2 icons:

static Icon[] paint = {
new ImageIcon(path + "icon1.gif"),
new ImageIcon(path + "icon2.gif")};

i want each time I press a button to change from icon1 to icon2.
in actionPerformed method I followed yours advices and put
Object buttonSource = e.getSource();
but since my buttons are Array obj. I can't say:
buttonSource.setIcon(paint[1]);
 
D

Daniel Pitts

man4*.* said:
I've got 9 buttons that are presented with one icon, and when I press that
button I want to change it, but
I've complicated a little bit... (hope, you'll understand what I need, if
not, I'll send whole code)

button initialization:

JButton[] button = new JButton[9];
{for ( int i = 0; i < 9; i++)
button = new JButton(paint[0]);}

putted 9 ActionListeners:

Container cp = getContentPane();
cp.setLayout(new FlowLayout());
for ( int i = 0; i < 9; i++)
cp.add(button);
for ( int i = 0; i < 9; i++)
button.addActionListener(new AL());

AL is a class that implements ActionListener,
also I've got 2 icons:

static Icon[] paint = {
new ImageIcon(path + "icon1.gif"),
new ImageIcon(path + "icon2.gif")};

i want each time I press a button to change from icon1 to icon2.
in actionPerformed method I followed yours advices and put
Object buttonSource = e.getSource();
but since my buttons are Array obj. I can't say:
buttonSource.setIcon(paint[1]);


Actually, you can, but you need to cast buttonSource to a JButton.

JButton buttonSource = (JButton)e.getSource();
buttonSource.setIcon(paint[1]);

That should work. e.getSource() will return the Object that created
the event, in this case *one* of the 9 buttons. e.getSource() return
type is Object, because the source "could" be anything, but in this
case you know it is a JButton, and just need to cast. To be on the
safe side, you probably should check instanceof JButton, although this
isn't something I do often, but I'm not usually a GUI programmer.

Well, good luck.
-Daniel.
 
M

man4*.*

Actually, you can, but you need to cast buttonSource to a JButton.
JButton buttonSource = (JButton)e.getSource();
buttonSource.setIcon(paint[1]);

THX, now I understand what get wrong...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top