Rechercher : dans
Par :

Java : je n'arrive pas a charger les images

Dernière réponse le 28 mar 2008 à 14:10:28 Cemninho, le 28 avr 2005 à 17:47:08 
 Signaler ce message aux modérateurs

Bonjour je suis étudiant et je travaille sur un jeu d'échec. Je suis encore débutant, et j'aimerais savoir comment je pourrais charger des images de pieces pour mon code ci-dessous. merci

import java.awt.*;
import java.awt.Image;
import java.awt.event.*;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.ButtonGroup;
import javax.swing.JMenuBar;
import javax.swing.KeyStroke;
import javax.swing.ImageIcon;

import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.JButton;

/* MenuLookDemo.java is a 1.4 application that requires images/middle.gif. */

/*
 * This class exists solely to show you what menus look like.
 * It has no menu-related event handling.
 */
class pion{
  Image img;
  
}
public class Chess {
    JTextArea output;
    JScrollPane scrollPane;


    public JMenuBar createMenuBar() {
        JMenuBar menuBar;
        JMenu menu, submenu;
        JMenuItem menuItem;
        JRadioButtonMenuItem rbMenuItem;
        JCheckBoxMenuItem cbMenuItem;

        //Create the menu bar.
        menuBar = new JMenuBar();

        //Build the first menu.
        menu = new JMenu("Game");
        menu.setMnemonic(KeyEvent.VK_A);
        menu.getAccessibleContext().setAccessibleDescription(
                "The only menu in this program that has menu items");
        menuBar.add(menu);
             ImageIcon icon = createImageIcon("images/nba.gif");
        menuItem = new JMenuItem("Nouveau jeu", icon);
        //menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead
        menuItem.setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_1, ActionEvent.ALT_MASK));
        menuItem.getAccessibleContext().setAccessibleDescription(
                "Recommencer une partie");
        menu.add(menuItem);

         menu.addSeparator();
        submenu = new JMenu("A submenu");
        submenu.setMnemonic(KeyEvent.VK_S);

        menuItem = new JMenuItem("An item in the submenu");
        menuItem.setAccelerator(KeyStroke.getKeyStroke(
                KeyEvent.VK_2, ActionEvent.ALT_MASK));
        submenu.add(menuItem);

        menuItem = new JMenuItem("Another item");
        submenu.add(menuItem);
        menu.add(submenu);

        //Build second menu in the menu bar.
        menu = new JMenu("Another Menu");
        menu.setMnemonic(KeyEvent.VK_N);
        menu.getAccessibleContext().setAccessibleDescription(
                "This menu does nothing");
        menuBar.add(menu);

        return menuBar;
    } 

    public Container createContentPane() {
        //Create the content-pane-to-be.
       JPanel contentPane = new JPanel(new BorderLayout());
       contentPane.setOpaque(true);
                 JPanel btns[] = new JPanel[64]; 
            JPanel board = new JPanel();
       board.setLayout(new GridLayout(8,8)); 
            int ii = 0; 
        for(int i = 0; i < btns.length; i++) 
        { 
        if(i % 8 == 0)ii++; 
        btns[i] = new JPanel(); 
        btns[i].setBackground(ii % 2 == 1? Color.WHITE:Color.BLACK); 
        btns[i].setPreferredSize(new Dimension(80,80)); 
        board.add(btns[i]); 
        ii++;
        }
      
        contentPane.add(board, BorderLayout.CENTER);

        return contentPane;
    }

    /** Returns an ImageIcon, or null if the path was invalid. */
    protected static ImageIcon createImageIcon(String path) {
        java.net.URL imgURL = Chess.class.getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }

    private static void createAndShowGUI(){
        //Make sure we have nice window decorations.
        JFrame.setDefaultLookAndFeelDecorated(true);

        //Create and set up the window.
        JFrame frame = new JFrame("Chess STPI v.1.0");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Create and set up the content pane.
        Chess demo = new Chess();

        frame.setContentPane(demo.createContentPane());
             frame.setJMenuBar(demo.createMenuBar());
        frame.getContentPane();



        //Display the window.
        frame.setSize(800, 600);
        frame.setVisible(true);
    }
    public static void main(String[] args) {
          javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });

    }
}

Meilleures réponses pour « java : je n'arrive pas a charger les images » dans :
[FreeMind] Publier une mindmap dans une page web VoirFreeMind est un logiciel de mindmapping. Vous avez plusieurs possibilités pour publier votre mindmap dans une page web. Flash applet Java Simple image PNG HTML+Javascript (texte seulement) HTML+Javascript (texte+icônes) HTML+Javascript...
Windows 7 : Graver une image .iso VoirWindows 7 intègre nativement un module de gravure qui supporte des images .ISO (Graveur d’image de disque Windows ). Plus besoin d’installer un logiciel tiers de gravure pour graver les images .ISO. Windows 7 prend en charge la gravure sur CD ou...
[Webmaster] Afficher une image de grande taille VoirPour la plupart des internautes, afficher une image de grande taille dans une page web est trop lourd. Zoomify est un petit programme Flash qui permet de rendre une image zoomable et navigable, et chargeant l'image par morceau selon le...
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
Gestion des images en HTML VoirComment afficher des images sur une page web? Quelques images sur un site Web peuvent le rendre plus attractif et plus convivial, cependant il est important de ne pas sombrer dans l'excès car les images peuvent impliquer un temps de chargement...

1

kij_82, le 28 avr 2005 à 17:57:36

Pour charger une image :
JLabel mon_image = new JLabel(new ImageIcon("./mon_fichier_image.extension")); ~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

2

stef, le 28 avr 2005 à 18:03:54
  • +1

Tu as essayé tout simplement de remplacer ton code

if(i % 8 == 0)ii++; 
        btns[i] = new JPanel(); 
        btns[i].setBackground(ii % 2 == 1? Color.WHITE:Color.BLACK); 
        btns[i].setPreferredSize(new Dimension(80,80)); 
        board.add(btns[i]); 
        ii++;
        }

par :
if(i % 8 == 0)ii++; 
        btns[i] = new JPanel(); 
        final Icon Img[i] = new ImageIcon("");
        btns[i].add(Img[i]);
        btns[i].setBackground(ii % 2 == 1? Color.WHITE:Color.BLACK); 
        btns[i].setPreferredSize(new Dimension(80,80)); 
        board.add(btns[i]); 
        ii++;
        }

Répondre à stef

3

stef, le 28 avr 2005 à 18:05:21

Excuse moi :
tu mets l'uRL de ton image dans ' new ImageIcon("");'

Répondre à stef

4

Cemniho, le 28 avr 2005 à 18:26:28

Stef désolé maist a méthode ne marche pas le compilateur me signale une erreur.
kij_82 ta solution fonctionne mais j'ais fais un essai : j'ai esayé d'ajouter la meme image sur toutes les cases pour voir si ça allé fonctionner (code ci dessous) mais jme suis rendu compte kil n'y a que la derniere case sur laquelle l'image s'affiche. Quelqu'un sait pourquoi ? merci

   public Container createContentPane() {
        //Create the content-pane-to-be.
       JPanel contentPane = new JPanel(new BorderLayout());
       JLabel img = new JLabel(new ImageIcon("./Images/0.gif")); 
       contentPane.setOpaque(true);
		 JPanel btns[] = new JPanel[64]; 
	    JPanel board = new JPanel();
       board.setLayout(new GridLayout(8,8)); 
	    int ii = 0; 
        for(int i = 0; i < btns.length; i++) 
        { 
        if(i % 8 == 0)ii++; 
        btns[i] = new JPanel(); 
        btns[i].setBackground(ii % 2 == 1? Color.WHITE:Color.BLACK); 
        btns[i].setPreferredSize(new Dimension(80,80)); 
        btns[i].add(img);
        board.add(btns[i]); 
        ii++;
        }

Répondre à Cemniho

5

kij_82, le 28 avr 2005 à 19:29:50
  • +1

C'est normal, tu doit creer unnouvel objet à chaque fois car la tu ne fait que référencer le même objet pour toutes tes cases.
Remplace :

btns[i].add(img);

Par :
btns[i].add( new JLabel(new ImageIcon("./Images/0.gif")) );

Et tu enleve :
JLabel img = new JLabel(new ImageIcon("./Images/0.gif")); 


Si apres ca ca marche pas, ca vient de l'organisation de tes JPanel.

++ ~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

6

Cemninho, le 29 avr 2005 à 19:42:06
  • +1

Merci kij_82 ta méthode a fonctionné, c'est cool de m'avoir aidé ! jremercie aussi ceux qui ont essayé ! Si G encore un soucis jreviendrai poser la question ! bye

Répondre à Cemninho

7

Psal78, le 3 jun 2007 à 19:57:59
  • +1

Bonjour, j'ai à peu près le même problème, mais le chemin de mon image est un chemin absolu (C:/ ...) et cela ne fonctionne pas...
Comment puis-je faire pour que cela fonctionne?

Merci d'avance

Répondre à Psal78

8

supfred, le 3 jun 2007 à 20:09:27

Et si tu mets l'image directement dans ton projet je pense que tu pourras te contenter de son nom sinon si je me rappel bien considére ton projet comme le debut du chemin tu n'aurs plus qu'a indiquer les dossiers et sous dossier dans lesquel se trouve ton image .
ex dans mon prjet j'ai créé un dossier Image qui contiend mes image j'inscrirai alors Image/monimage.gif

As tu compris?

Répondre à supfred

10

miniki, le 27 mar 2008 à 22:25:00

JLabel mon_image = new JLabel(new ImageIcon("Images/Volant.JPEG"));

comme tu le dis, dans ton message, mais le dossier Images doit se trouver dans ton projet c'est a dire dans le dossier Src?

Répondre à miniki

11

 kij_82, le 28 mar 2008 à 14:10:28

Qu'importe dans quel répertoire les images se situe tant que ce répertoire est défini comme un répertoire source dans la configuration du projet (clic droit sur projet->Properties->Java Build Path->Onglet 'Sources'

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82