ImageIcon automatisch auf Etikettengröße skalieren
In Java erfordert die Anzeige von Bildern auf einer GUI die Verwendung der ImageIcon-Klasse. Diese Klasse bietet eine praktische Möglichkeit, die Anzeige von Bildern innerhalb einer GUI-Komponente, beispielsweise einer Beschriftung, zu verwalten. Das Standardverhalten von ImageIcon besteht jedoch darin, die Originalgröße des Bildes beizubehalten, was möglicherweise nicht immer wünschenswert ist.
Benutzerdefinierte Skalierung
Wenn das Standard-Skalierungsverhalten ist Wenn dies nicht der Fall ist, können Sie eine benutzerdefinierte Komponente erstellen, die die Anzeige skalierter Bilder übernimmt. Dieser Ansatz bietet eine bessere Kontrolle über den Skalierungsprozess und ermöglicht es Ihnen, das gewünschte Anpassungs- oder Füllverhalten anzugeben.
Definieren einer skalierbaren Bildkomponente
Um ein benutzerdefiniertes skalierbares Bild zu erstellen Komponente, erben Sie von der JPanel-Klasse und implementieren Sie den folgenden Schlüssel Methoden:
Beispielimplementierung:
Der folgende Java-Code demonstriert eine benutzerdefinierte skalierbare Bildkomponente:
import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import javax.swing.JPanel; public class ScalableImage extends JPanel { // ... @Override protected void paintComponent(Graphics g) { super.paintComponent(g); if (image != null) { Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); int x = (getWidth() - image.getWidth(this)) / 2; int y = (getHeight() - image.getHeight(this)) / 2; g2d.drawImage(image, x, y, this); } } // ... }
Fit vs. Füllverhalten
Das Skalierungsverhalten kann an das darin enthaltene Bild angepasst werden Sie können die Abmessungen des Bauteils anpassen oder die gesamte Fläche ausfüllen. Das Anpassungsverhalten skaliert das Bild so, dass es in den verfügbaren Raum passt, während das Seitenverhältnis beibehalten wird. Das Füllverhalten skaliert das Bild so, dass es den gesamten Bereich ausfüllt, wodurch es möglicherweise beschnitten oder verzerrt wird.
Dynamische Skalierung
Um sicherzustellen, dass das Bild angemessen skaliert wird, wenn sich die Abmessungen der Komponente ändern Rufen Sie die Methode invalidate() innerhalb der Methoden revalidate() oder setSize() auf. Dies löst die Neugenerierung des skalierten Bildes basierend auf den aktualisierten Abmessungen aus.
Das obige ist der detaillierte Inhalt vonWie skaliert man ein ImageIcon automatisch so, dass es in ein JLabel in Java passt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!