J
jackroofman
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 = new JButton();
buttons.setBounds(i*25, 5, 20, 20);
buttons.setName(functions);
buttons.setVisible(true);
buttons.addActionListener(this);
buttons.setBorderPainted(false);
buttons.setIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 0, 20, 20)))));
buttons.setRolloverIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 20, 20, 20)))));
buttons.setPressedIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 40, 20, 20)))));
add(buttons);
}
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);
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
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 = new JButton();
buttons.setBounds(i*25, 5, 20, 20);
buttons.setName(functions);
buttons.setVisible(true);
buttons.addActionListener(this);
buttons.setBorderPainted(false);
buttons.setIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 0, 20, 20)))));
buttons.setRolloverIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 20, 20, 20)))));
buttons.setPressedIcon(new ImageIcon(createImage(new
FilteredImageSource(new
ImageIcon("buttonbase.png").getImage().getSource(), new
CropImageFilter(i * 20, 40, 20, 20)))));
add(buttons);
}
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);
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