LayoutManager Grafik soll nicht im GridLayout Skalieren

Cromm Cruach

Mitglied
Hi

Java:
public class PersonPanel extends JPanel{
	
	private JLabel roleLabel = new JLabel();
	private JLabel imgLabel = null;
	
	public PersonPanel(ImageIcon i, String s, int w, int h){
		super();

                this.setLayout(new GridLayout(1,2,5,5));

		roleLabel.setText(s);		
	
		imgLabel = new JLabel(i);
		
		this.add(imgLabel);
		this.add(roleLabel);
	}
}

In diesem Panel werden 2 Spalten gefüllt. Ein Bild und ein kleiner Text dazu. Das original Bild ist sehr groß ( kann / darf nicht verändert werden). Im Grid wird es in Voller größe angezeigt somit natürlich auch alle spalte. Ich will das bild auf 100*200 skalieren! Kann man das bild iwie so bearbeiten und es dann an das Panel übergeben, sodass es dann nur mit 100*200 angezeigt wird und somit die Grids auch auf die größe skalieren?

Habs mit
Code:
icon.getImage().getScaledInstance( 100,200, Image.SCALE_DEFAULT);
versucht und das Icon dann übergeben leider ohne erfolg.

Wie gesagt die Originaldatei darf nicht verändert werden.

Gruß
Cromm Cruach
 
Sowas wie
Java:
Image image = icon.getImage().getScaledInstance( 100,200, Image.SCALE_DEFAULT);
icon.setImage(iamge);
sollte eigentlich gehen (möglichst früh - am besten das ImageIcon gar nicht erst mit dem "falschen" Image erstellen). Was hat daran nicht funktioniert?
 
Wo und wie wird das ImageIcon erstellt? (Es wäre mir im Moment zu "lästig", jetzt ein Beispiel zu erstellen, nur um zu zeigen, dass es so geht, und dann zu hören, "oh, ja, sorry, mein Fehler, das war das falsche Icon" (oder so))...
 

Neue Themen


Zurück
Oben