2016-11-27 1 views
-3

Aide! Comment puis-je ajouter une image sur mon JFrame? Ceci est mon codeComment ajouter une image dans Java Swing?

public class JavaApplication79 extends JFrame{ 

ImageIcon icon = new ImageIcon("Downloads/splash.jpg"); 
JLabel label = new JLabel(icon); 

public JavaApplication79(){ 
    add(label); 

    setLayout(null); 
    setSize(900,500); 
    setLocationRelativeTo(null); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 

public static void main(String args[]){ 
JavaApplication79 show = new JavaApplication79(); 
show.setVisible(true); 
} 
} 
+4

Copie possible de [Comment ajouter une image à un JPanel?] (Http://stackoverflow.com/questions/299495/how-to-add-an-image-to-a-jpanel) –

+0

* 'setLayout (null); '* Uh-huh. Ajouter un 'LineBorder' au' JLabel' –

+1

1) Une seule ligne vide d'espace blanc dans le code source est tout ce qui est * jamais * nécessaire. Les lignes vides après '{' ou avant '}' sont également généralement redondantes. 2) Utilisez une forme logique et cohérente d'indentation des lignes de code et des blocs. L'indentation est destinée à rendre le flux du code plus facile à suivre! –

Répondre

1

Les problèmes commencent par la mise en page null. Parce qu'il n'y a aucune mise en page pour définir la taille du composant à sa taille préférée, ou toute autre taille, le panneau prend sa taille par défaut de 0 x 0 pixels.


  • Pour 'en haut à gauche' du cadre que je vous recommande FlowLayout. Pour 'centre' de l'image - GridBagLayout est facile.
  • Pour 'centré & étiré' pour remplir le cadre, GridLayout.

Découvrez les dispositions de la leçon Laying Out Components Within a Container du didacticiel.

Mais une astuce supplémentaire sur la combinaison de dispositions pour différents effets dans différentes parties de l'interface graphique. Utilisez des gestionnaires de mise en page, ou combinations of them avec la mise en page rembourrage et bordures pour white space.