Bonjour,
j'aimerai insérer une icone de type .ico dans un JButton.
J'utilise actuellement la bibliotheque Jimi. Voici mon code :
Image img=Jimi.getImage("C:\\workspace\\ok.ico", Jimi.ONE_SHOT);
JButton b=new JButton(new ImageIcon(img));
Lors de l'appel à getImage(), j'obtiens le message d'erreur suivant :
Exception in thread "Thread-2" java.lang.OutOfMemoryError: Requested array size exceeds VM limit
Que faire?
La JVM et dit qu'elle manque de mémoire. Alors soit:
- ton application est énorme et charger l'icône fait apparaître le manque de mémoire. Dans ce cas tu dois lancer la JVM avec des paramètres lui permettant d'agrandir son tas.
- ton image est énorme et ne peux pas tenir en mémoire. Même solution que plus haut, mais il est très invraisemblable que le problème soit là.
- ton image est mal formée et la JVM ou plutôt la librairie Jimi perd les pédales en la chargeant. Dans ce cas vérifier le fichier .ico.
- il y a un bug dans Jimi. Mais as tu vraiment besoin de Jimi pour mettre une pauvre image dan s un pauvre button ?
- le problème est ailleurs en dépit des apparences.
Hmmm une intervention qui ne demande pas trop de temp :D
Frédéric a raison, tu peux charger une imageIcon dans un JButton
de la façon suivante, sans passer par une librairie qqconque:
Bonne chance
C'était en fait l'image (.ico) qui était mal formé.
Je vous remercie beaucoup pour tout ces renseignements.