bonjour
je cherche comment régler la taille de mon JLabel pour qu'il prend la taille de l'image contenue dedans
j'utilise setSize mais il me manque l'import nécessaire et l'argument de setSize
merci
bonjour
je cherche comment régler la taille de mon JLabel pour qu'il prend la taille de l'image contenue dedans
j'utilise setSize mais il me manque l'import nécessaire et l'argument de setSize
merci
j'ai résolu le problème avec ceci:
au lieu de définir un JLabel, j'ai ajouté à mon JPanel une bordure avec titre.
je veux que mon panel soit entouré d'une bordure titrée, mais au lieu d'afficher un texte dans le titre, je veux afficher une image(icone)
j'ai fais ça:
panel.setBorder(BorderFactory.createTitledBorder(new ImageIcon("C:\\Documents and Settings\\Naira\\workspace\\calculatrice\\ressources\\palette.png")));
eclipse m'indique qu'il y a un probleme avec createTitledBorder qui le souligne en rouge
je n'arrive pas à corriger mon code
As tu fait les import?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2import javax.swing.BorderFactory;
oui
deja si je mets du texte ça fonctionne bien
mais le probleme apparait quand je mets le chemin d'une image avec "new ImageIcon"
alors
que pourrais-je faire pour mettre une image comme étiquette de mon panel?
salut,
tu pourrais par exp utiliser un GlassPane pour afficher ton image ou bon te semble au dessus de ton panel
exemple
ceci affichera l'image contenue ds le label au coin haut/gauche du panel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 final JLabel lbl = new JLabel(new ImageIcon("img_32.png")); JComponent c = new JPanel(); c.setLayout(null); c.setOpaque(false); c.add(lbl); c.setVisible(true); setGlassPane(c); panel.addComponentListener(new ComponentAdapter() { public void componentMoved(ComponentEvent e) { lbl.setBounds(e.getComponent().getX(), e.getComponent().getY(), 32, 32); } public void componentResized(ComponentEvent e) { lbl.setBounds( e.getComponent().getX(), e.getComponent().getY(), 32, 32); } public void componentShown(ComponentEvent e) { lbl.setBounds(e.getComponent().getX(), e.getComponent().getY(), 32, 32); } });
je ne crois que ce soit la meilleure façon de faire... mais bon![]()
Bah en fait les TitledBorder n'ont jamais été prévues pour fonctionner avec des icônes. Juste avec du texte. Donc il est normal que tu n'arrives pas à lui affecter d'icône, il n'existe pas de méthode pour le faire.![]()
Partager