[JAVA/Résolu] problème de rafraichissement avec une image ...

problème de rafraichissement avec une image ... [JAVA/Résolu] - Java - Programmation

Marsh Posté le 03-05-2005 à 17:26:27    

Bonjour,
 
Je suis en train de commencer a faire un petit jeu et j'ai un petit problème
 
Donc pour faire simple, j'ai un JFrame divisé en deux :
un JPanel pour poser mes boutons
et un autre gamePanel qui dérive de JPanel pour pouvoir surcharger la méthode paint
 
le problème étant que lorsque ma fenêtre est créée, repaint est bien appelée sur le gamePanel mais celui ci n'affiche rien. par contre si je deplace la fenetre hors de l'écran, ou que je la réduit, ou que je met un actionListener sur un bouton qui va appeler le repaint du gamePanel, ca marche et mon image est affichée !
 
voici le code ...
 

Code :
  1. public class GraphicalJeu extends JFrame {
  2. private JButton start=new JButton("Start" );
  3. private JButton quit=new JButton("Reset" );
  4. private JButton reset=new JButton("Quit" );
  5. private JPanel panneau     = new JPanel();
  6. private GamePanel gamePanel   = null;
  7. private JPanel buttonPanel = new JPanel();
  8. private JPanel lifePanel = new JPanel();
  9. private JLabel gommeLabel = new JLabel("Nombre de gommes : X" );
  10. public GraphicalJeu(String arg0,Jeu jeu) {
  11.  super(arg0);
  12.  gamePanel   = new GamePanel(jeu);
  13.  // initialisation fenêtre
  14.  setBounds(100,100,800,600);
  15.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  16.    
  17.    // initialisation panneau global
  18.    // j'ai virer les gridbaglayout ...
  19.  ...   
  20.     panneau.setLayout(grillePanneau);
  21.  ...
  22.     panneau.add(gamePanel);
  23.  ...
  24.     panneau.add(buttonPanel);
  25.    
  26.  ...
  27.     buttonPanel.setLayout(grilleButtonPanneau);
  28.  ...    
  29.     buttonPanel.add(start);
  30.      ...
  31.     buttonPanel.add(reset);
  32.  ...    
  33.     buttonPanel.add(quit);
  34.  ...         
  35.     buttonPanel.add(gommeLabel);
  36.  ...    
  37.     buttonPanel.add(lifePanel);
  38.  ...
  39.     setContentPane(panneau);
  40.     setVisible(true);    
  41. }
  42. }


 

Code :
  1. public class GamePanel extends JPanel {
  2. public void paint(Graphics g)
  3. {
  4.  Image imagePlace = Toolkit.getDefaultToolkit().getImage("placevide.jpg" );
  5.  g.drawImage(imagePlace,100,100,null);
  6. }
  7. }


 
il faut noter que je vais bien entendu pas charger l'image a chaque fois, mais c'est juste pour le test ...
 
Si quelqu'un avait une idée ... doit y avoir un truc que j'ai pas fait correctement ...
petite précision : Java 1.5


Message édité par fucky_fuck le 03-05-2005 à 18:21:11
Reply

Marsh Posté le 03-05-2005 à 17:26:27   

Reply

Marsh Posté le 03-05-2005 à 17:37:42    

Commence par surchager la méthode "paintComponent" de ton JPanel et non pas "paint".

Reply

Marsh Posté le 03-05-2005 à 17:45:37    


ça ne change rien ...
mais après lecture du jdk c'est vrai que ça parait plus logique ...

Reply

Marsh Posté le 03-05-2005 à 18:06:40    

Essaie d'ajouter "this" comme image observer.

Reply

Marsh Posté le 03-05-2005 à 18:20:53    


merci maitre !  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed