JLabel zentrieren - Qualität

Liebe Freunde,

ist die Qualität, die mit AWT-paint() erreicht wird höher als mit JLabel(icon)?
Sin Methoden die noch höhere Bildqualität erreichen können möglich?

Wie kann ich ein JLabel am Bild zentrieren - dass das Bild des JLabels also in der Mitte ist?

Ich danke euch!
MfG
Inno

label.setHorizontalAlignment(SwingConstants.CENTER);
Aber sowas lässt sich wunderbar mit einem LayoutManager beeinflussen.

Beim Zeichnen eines Icons auf einem JLabel wird irgendwo auch nur eine paint()-Methode aufgerufen.
Es wird also keine Unterschiede hinsichtlich der Qualität geben.

Danke sehr! :smiley:

MfG
Inno

        ImageIcon icimg = new ImageIcon(img);
        JLabel imgJ = new JLabel(icimg);
        
        this.add(imgJ);
        this.validate();```

Btw.: Könntet ihr mir bei diesem Problem auch noch rasch helfen?
Das Bild wird leider nicht angezeigt. :(

Danke !
MfG
Inno

kann ich dir nicht genau sagen ob paint besser ist als JLabel, aber ich denk das es wohl gleich ist.
Besser kommste nur mit selbst malen, wobei du dann wissen musst was du machst :wink:

ich weiß jetzt nicht genau ob es auch für Bilder gilt aber probier mal setHorizontalAligment(JLabel.CENTER) (oder so ähnlich)

Edit: Oh wärend ich das hier vergessen hab abzuschicken gabs schon die Lösung :smiley:

Gibts ne Fehlermeldung? Guck mal nach, ob der Pfad/Dateiname zum Image stimmt. Zeig mal, wie du das Image lädst.

Im Wiki gibts eine brauchbare Erklärung zum Laden von Bildern in Java: Grafikdateien laden und anzeigen (Java) – Byte-Welt Wiki

Es geht jetzt! :slight_smile:

img.getWidth() oder img.getHeight() können ohne MediaTracker leider -1 zurückgeben.

Dank an euch!
MfG
Inno

Der MediaTracker beeinflusst nicht die Größe, der MediaTracker stellt nur sicher, dass das Bild vollständig geladen ist. Generell kannst du für sowas aber auch ImagIO#read verwenden. Da kannste dir den MediaTracker sparen.

Wie du ein Bild darstellst (es sei denn skalliert) ist egal, die Qualität ist immer die gleiche.