Maison >Java >javaDidacticiel >Comment redimensionner automatiquement les images dans un JLabel ?
Redimensionnement automatique de l'image sur un JLabel
Lors de l'affichage d'une image sur un JPanel à l'aide d'un JLabel, il est souvent souhaité d'ajuster automatiquement la taille de l'image pour s'adapter aux dimensions de l'étiquette. Par défaut, JLabel conservera les proportions de l'image d'origine et la mettra à l'échelle pour l'adapter à l'espace disponible de l'étiquette.
Pour obtenir un redimensionnement automatique de l'image, une approche consiste à utiliser un composant personnalisé qui étend JPanel et gère la mise à l'échelle. rendu des images. Cela permet plus de contrôle sur le comportement de mise à l'échelle, par exemple en spécifiant si l'image doit être ajustée ou remplie dans l'étiquette.
Options de redimensionnement
Il existe deux options de redimensionnement principales disponible pour les images sur un JLabel :
Composant personnalisé pour les images redimensionnables
Le code suivant présente un composant personnalisé, ScalablePane, qui gère mise à l'échelle de l'image basée sur l'option d'ajustement/remplissage :
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) }
Exemple d'utilisation
Pour utiliser le composant ScalablePane, vous pouvez l'instancier et définir l'image souhaitée :
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);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!