> I thought my method would handle this dynamically, but I was way off:
>
[quoted text clipped - 17 lines]
> ".ico");
> button = new JButton(text, icon);
After this statement, button is no longer "pointing at" (a reference to)
the button displayed on your panel. From here on you are manipulating a
completely separate and invisible button (invisible because it hasn't
been added to any visible component).
Replace the above line with
button.setText(text);
button.setIcon(icon);
(Untested - I've no idea if these are the appropriate methods)
> Dimension dim = new Dimension(icon.getIconWidth(),
> icon.getIconHeight());
[quoted text clipped - 19 lines]
> Thanx
> Phil
Phil Powell - 23 Mar 2007 15:09 GMT
> > I thought my method would handle this dynamically, but I was way off:
>
[quoted text clipped - 27 lines]
> button.setIcon(icon);
> (Untested - I've no idea if these are the appropriate methods)
Thanx! Here is the fixed method:
/**
* Handle {@link javax.swing.JButton}
* @param button {@link javax.swing.JButton}
*/
private void handleButton(JButton button) {
try {
ImageIcon icon = IconHandler.createImageIcon(
System.getProperty("com.ppowell.applications.globals.rockpaperscissorsglobals.FILE_SRC_PATH")
+
FileFunctionality.buildFilePath(RockPaperScissorsGlobals.IMAGE_PATH_ARRAY) /
* EXCLUDE 1 BACKSLASH */ +
File.separator +
button.getText().toLowerCase().trim() +
"." +
System.getProperty("com.ppowell.applications.globals.rockpaperscissorsglobals."
+
button.getText() + "_ICON_EXT"));
icon = IconHandler.scaleImageIcon(icon, 16, 16);
button.setIcon(icon);
Dimension dim = new Dimension(icon.getIconWidth(),
icon.getIconHeight());
button.setSize(dim);
button.setPreferredSize(dim);
button.setMaximumSize(dim);
} catch (Exception e) {
e.printStackTrace();
}
button.setFocusable(false);
button.setSelected(false);
button.addActionListener(RockPaperScissors.this);
button.setMnemonic(button.getText().charAt(0));
button.setFont(RockPaperScissorsGlobals.FONT);
}
The problem resulted in my attempt to set an .ico file as Icon, and
apparently that is not possible in Java as ".ico" is not recognized as
a legitimate image. Switching to a JPEG image instead was just fine.
> > Dimension dim = new Dimension(icon.getIconWidth(),
> > icon.getIconHeight());
[quoted text clipped - 19 lines]
> > Thanx
> > Phil