hiho,
in etwa war mir ja klar wie man images skalieren kann, was rein größentechnisch auch klarppt, nur seh ich nich das bild sondern einfach ne graue fläche. Das Image liegt als 16x16 vor und soll kleiner skaliert werden. Das ganze wollte ich derart lösen:
nur seh ich da nur ne dunkelgraue fläche
Die Grafik hier unten zeigt das Original, welches ich unverändert in der Toolbar verwende.
in etwa war mir ja klar wie man images skalieren kann, was rein größentechnisch auch klarppt, nur seh ich nich das bild sondern einfach ne graue fläche. Das Image liegt als 16x16 vor und soll kleiner skaliert werden. Das ganze wollte ich derart lösen:
Java:
private class ScaledImageTabButton extends JButton {
/** */
private static final long serialVersionUID = -5639648137402210321L;
public ScaledImageTabButton(Action a, int dimension) {
super(a);
Object icon = a.getValue(Action.SMALL_ICON);
if (icon != null)
setIcon(scaleIcon((Icon) icon,dimension, dimension));
setContentAreaFilled(false);
setFocusable(false);
}//constructor
private Icon scaleIcon(Icon i, int width, int height) {
BufferedImage bi = new BufferedImage(i.getIconWidth(),i.getIconHeight(),BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = (Graphics2D) bi.getGraphics();
g2d.drawImage(((ImageIcon) i).getImage(), 0, 0, null);
return new ImageIcon(bi.getScaledInstance(width, height, BufferedImage.SCALE_DEFAULT));
}//scaleIcon
}//ScaledImageTabButton
nur seh ich da nur ne dunkelgraue fläche
Die Grafik hier unten zeigt das Original, welches ich unverändert in der Toolbar verwende.