IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

accès à une image : problème de chemin d'accès


Sujet :

AWT/Swing Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Par défaut accès à une image : problème de chemin d'accès
    J’ai un combobox que je remplis avec du texte et des images. Pour cela j’ai donc définis une nouvelle classe ComboBoxRenderer afin de pouvoir insérer mes images. Il se trouve que sous Eclipse je n’ai aucun problème, alors que sous Linux, j’ai un message d’erreur car les images ne sont pas trouvées (Couldn't find file: " + titre de l’image) . Je suppose donc un problème de chemin d’accès…

    Je vous colle ici les extraits de code intéressants :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
     
    public class WChoice extends JPanel implements ItemListener {
     
    private JComboBox meschoix;
    ImageIcon[] images;
    String[] logoStrings = { "Lyon", "Bordeaux", "Lille", "Lens", "Marseille","Rennes", "Auxerre", "Paris", "Nice", "Le_Mans", "Monaco", "Nancy", "Nantes", "St-Etienne", "Toulouse", "Sochaux", "Troyes", "Ajaccio","Strasbourg", "Metz" };
     
    public void init() {
     
    		images = new ImageIcon[logoStrings.length];
    		Integer[] intArray = new Integer[logoStrings.length];
    		Championnat ch = new Championnat("fic.res");
    		str = new String[ch.getNbrMaxEq()];
    		maxInd = ch.getNbrMaxEq();
    		for (int i = 0; i < ch.getNbrMaxEq(); i++) {
    			str[i] = ch.getNomEquipe(i + 1);
    			intArray[i] = new Integer(i);
    			images[i] = createImageIcon("images/"+logoStrings[i] + ".jpg");
    			if (images[i] != null)
    				images[i].setDescription(logoStrings[i]);
    			JComponent newContentPane = new WChoice();
    			newContentPane.setOpaque(true);
    		}
    // Creation du combo box
    		meschoix = new JComboBox(intArray); 
    // mon custom d'un combobox
    		ComboBoxRenderer renderer = new ComboBoxRenderer();
    // taille du combobox
    renderer.setPreferredSize(new Dimension(80, 50));   		meschoix.setRenderer(renderer);
    		meschoix.setMaximumRowCount(3);
    		add(meschoix, BorderLayout.PAGE_START);
    		meschoix.addItemListener(this);
    	}
     
    protected static ImageIcon createImageIcon(String path) {
    		URL imgURL = WChoice.class.getResource(path);
    		if (imgURL != null)
    			return new ImageIcon(imgURL);
    		else { System.err.println("Couldn't find file: " + path); return null; }
    	}
     
    …...
     
    // cette classe se trouve toujours dans la première classe initiale WChoice
    class ComboBoxRenderer extends JLabel implements ListCellRenderer {
    		private Font monFont;
     
    		/** Procédure qui définit le nouveau Combobox */
    		public ComboBoxRenderer() {
    			setOpaque(true);
    			setHorizontalAlignment(LEFT);
    			setVerticalAlignment(TOP);
    		}
     
    		/** Fonction qui trouve l'image et le texte correspondant au choix */
    public Component getListCellRendererComponent(JList list, Object value,	int index, boolean isSelected, boolean cellHasFocus) {
    			int selectedIndex = ((Integer) value).intValue();
    			if (isSelected) {
    				setBackground(list.getSelectionBackground());
    				setForeground(list.getSelectionForeground());
    			} else {
    				setBackground(list.getBackground());
    				setForeground(list.getForeground());
    			}
    			ImageIcon icon = images[selectedIndex];
    			String logo = logoStrings[selectedIndex];
    			setIcon(icon);
    			if (icon != null) {
    				setText(logo);
    				setFont(list.getFont());
    			} else { setmonText(logo + " (no image available)", list.getFont()); }
    			return this;
    		}
     
    		/** Fonction qui écrit le texte */
    		protected void setmonText(String monText, Font normalFont) {
    			if (monFont == null)
    				monFont = normalFont.deriveFont(Font.ITALIC);
    			setFont(monFont);
    			setText(monText);
    		}
    	}
    Enfin je précise que mon arborescence est la suivante :
    -TPProjet2
    - src
    - fr
    - uhp_nancy
    - esstin
    - outils
    - WChoice (celle qui nous intéresse) et le dossier « images » contenant toutes mes images.

    J’ai cru lire que des méthodes comme getDocumentBase() résoudrait mes problèmes sauf que je n’ai pas définie ma classe comme un Applet et donc cette méthode n’est pas reconnue… y a t’il une autre solution ?

    Je vous remercie par avance pour votre aide,

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Merci de chercher dans la FAQ ou dans le forum, c'est une question récurrente

Discussions similaires

  1. Chemin d'accès à une image
    Par rolls dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 19/12/2012, 14h06
  2. Chemin d'accès à des images et Alerteur
    Par frederic_s dans le forum Deski
    Réponses: 2
    Dernier message: 30/11/2006, 13h19
  3. Réponses: 2
    Dernier message: 10/09/2006, 14h28
  4. Réponses: 1
    Dernier message: 19/05/2006, 20h57
  5. [XSLT] Problème de chemin d'accès + XSLT
    Par Jorus dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/09/2004, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo