Setting properties on similar objects simultaneously
I'm writing a program with a wide variety of interfaces. Two of them
are some JButtons and JToggleButtons. The components are so similar
that I'm setting almost identical properties on it, but I have to do
it separately because a JButton is not a JToggleButton. My code is:
for (int i=0; i<5; i++) {
buttons[i] = new JButton();
buttons[i].setBounds(i*25, 5, 20, 20);
buttons[i].setName(functions[i]);
buttons[i].setVisible(true);
buttons[i].addActionListener(this);
buttons[i].setBorderPainted(false);
buttons[i].setIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 0, 20, 20)))));
buttons[i].setRolloverIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 20, 20, 20)))));
buttons[i].setPressedIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 40, 20, 20)))));
add(buttons[i]);
}
for (int i=5; i<7; i++) {
toggles[i-5] = new JToggleButton();
toggles[i-5].setBounds(i * 25, 5, 20, 20);
toggles[i-5].setName(functions[i]);
toggles[i-5].setVisible(true);
toggles[i-5].addActionListener(this);
toggles[i-5].setBorderPainted(false);
toggles[i-5].setIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 0, 20, 20)))));
toggles[i-5].setRolloverIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 20, 20, 20)))));
toggles[i-5].setRolloverSelectedIcon(new
ImageIcon(createImage(new FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 40, 20, 20)))));
toggles[i-5].setSelectedIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 60, 20, 20)))));
add(toggles[i-5]);
}
private JButton buttons[] = new JButton[7];
private JToggleButton toggles[] = new JToggleButton[2];
As you can see, there's only one unique line in the JButton part and
two unique ones in the JToggleButton part. There must be a way for me
to use ONE loop to do all the common ones and then differentiate
between the two objects for their unique properties. I haven't been
able to find any way to do this, however. Any ideas?
Thanks,
Stephen