icone type ico

nanou
icone type ico

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?

fredericmazue

Quote:
OutOfMemoryError

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.

Niroken

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:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MaFenetre extends JFrame
{
   public MaFenetre()
   {
    /*Code inhérent à la fenetre:placement des JPanels etc*/

    ImageIcon img = new ImageIcon("loupe.jpg");
    JButton jButton = new JButton("", img);
   }
}

Bonne chance

nanou
Résolu

C'était en fait l'image (.ico) qui était mal formé.
Je vous remercie beaucoup pour tout ces renseignements.