2009-03-09 7 views
0

J'ai un tableau avec des cartes dans lesquelles je dois trouver des correspondances. J'ai deux variables buttonA et buttonB pour garder une trace des carrés cliqués.Java Swing Problème

Quand ils sont égaux, je peux les supprimer de la carte en ajoutant simplement ce code:

cards[buttonA].setVisible(false); 
cards[buttonB].setVisible(false); 

Comment puis-je placer la même image sur tous les boutons après avoir trouvé matchs? J'ai essayé ce qui suit, mais au lieu de changer l'image laisse simplement la même image sur les boutons

cards[buttonA].setIcon(new ImageIcon("myPic.png"); 

Répondre

2

Vous devez probablement utiliser:

new ImageIcon(getClass().getResource("/path/to/myPic.png")); 

Si cette ressource est sur le classpath. (Rappelez-vous si vous utilisez un IDE, vous devez vous assurer que vos ressources PNG seront copiés dans le répertoire de sortie IDEA par exemple, cela est réalisé dans le menu des paramètres du compilateur.)

modifier: Je ne me souviens pas si le chemin commence par un / ou non.

+0

Il commence par une barre oblique si vous voulez qu'il soit absolu dans le classpath et ne commence pas par une barre oblique si vous le souhaitez par rapport à la classe. –

+0

Je l'ai essayé, mais je n'ai pas travaillé ... J'ai remarqué que ça faisait descendre l'image un peu ... mais ça ne l'a pas changé. –

+0

Ensuite, un problème courant est que (si vous utilisez un IDE) le fichier png n'est pas copié dans votre zone de sortie (ou classes ou bin). c'est-à-dire uniquement dans le répertoire source. Cela pourrait être un paramètre de construction IDE - dans IDEA c'est sous le "compilateur". RÉGLAGES –

0

Vous pouvez avoir une référence à ImageIcon si vous souhaitez le partager entre les boutons (au lieu de le charger à chaque fois). Pour moi, votre code devrait fonctionner. Peut-être que vous pouvez supprimer l'icône actuelle (en utilisant setIcon (null)), puis le définir.

+0

Vous n'avez pas besoin de supprimer l'autre icône en premier. Le fichier PNG de Tony n'est évidemment pas sur son chemin de classe –