Heim >Java >javaLernprogramm >Wie kann ich die Größe von Bildern in einem JLabel automatisch ändern?
Automatische Bildgrößenänderung auf einem JLabel
Bei der Anzeige eines Bildes auf einem JPanel mithilfe eines JLabel ist es oft gewünscht, die Bildgröße automatisch anzupassen passend zu den Abmessungen des Etiketts. Standardmäßig behält JLabel das Seitenverhältnis des Originalbilds bei und skaliert es so, dass es in den verfügbaren Platz des Etiketts passt.
Um eine automatische Bildgrößenänderung zu erreichen, besteht ein Ansatz darin, eine benutzerdefinierte Komponente zu verwenden, die JPanel erweitert und die Skalierung verarbeitet Bildwiedergabe. Dies ermöglicht eine bessere Kontrolle über das Skalierungsverhalten, z. B. die Angabe, ob das Bild in das Etikett eingepasst oder ausgefüllt werden soll.
Größenänderungsoptionen
Es gibt zwei Hauptoptionen zur Größenänderung Verfügbar für Bilder auf einem JLabel:
Benutzerdefinierte Komponente für skalierbare Bilder
Der folgende Code zeigt eine benutzerdefinierte Komponente, ScalablePane, das verwaltet die Bildskalierung basierend auf der Option „Anpassen/Füllen“:
public class ScalablePane extends JPanel { // ... (code omitted for brevity) @Override protected void paintComponent(Graphics g) { // Draw the scaled image super.paintComponent(g); if (scaled != null) { g.drawImage(scaled, x, y, this); } else if (master != null) { g.drawImage(master, x, y, this); } } // ... (code omitted for brevity) }
Beispielverwendung
Um die ScalablePane-Komponente zu verwenden, können Sie sie instanziieren und das gewünschte Bild festlegen:
ScalablePane scalablePane = new ScalablePane(image); // Set the fit/fill option scalablePane.setToFit(true); // Fit image within the component // Add the component to your JPanel yourJPanel.add(scalablePane);
Das obige ist der detaillierte Inhalt vonWie kann ich die Größe von Bildern in einem JLabel automatisch ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!