Rien ne s'affiche sur ma fentre Java. [Résolu]

Signaler
Messages postés
2
Date d'inscription
samedi 30 janvier 2021
Statut
Membre
Dernière intervention
31 janvier 2021
-
Messages postés
2
Date d'inscription
samedi 30 janvier 2021
Statut
Membre
Dernière intervention
31 janvier 2021
-
Rien ne s'affiche sur ma fentre Java, voici le code :

le main:
package fentre;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class main extends JFrame {
 
 private static final long serialVersionUID = 1L;
 public static void main(final String[] args) {
  SwingUtilities.invokeLater(new Runnable(){
 public void run(){
   new Frame("A");
   }
 });
  }
}

le panel :
package fentre;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;

public class  panel extends JPanel{

   /**
*
*/
 private static final long serialVersionUID = 1L;

public void paintComponant (Graphics go) {
    go.setColor(Color.green);  
 go.fillRect(16, 16, 25, 25);


     }

   }

le frame :
package fentre;

import java.awt.Panel;

import javax.swing.JFrame;

public class Frame extends JFrame {

 /**
* 
*/
 private static final long serialVersionUID = 1L;
  public Frame(String title) {
  setTitle(title);
  setVisible(true);
    setSize(1400 , 1000);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setLocationRelativeTo(null);
     add(new Panel());
  
  
  }
  

}

Vous pourrez m'aidez svp.

1 réponse

Messages postés
16331
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
8 mai 2021
2 826
Bonjour,

Il faut être extrêmement rigoureux dans l'usage des noms de classes et de méthodes, car sinon tu peux rapidement faire complètement autre chose que ce que tu penses.

Dans la classe panel la méthode doit s'appeler paintComponent, avec un e, sinon ce n'est pas une surcharge de la méthode existante, mais la création d'une nouvelle méthode que Swing n'utilisera jamais.

Dans la classe Frame, tu dois ajouter un new panel(), avec un p minuscule, sinon tu n'utilises pas la classe que tu as créé, mais celle de java.awt
Remarque : du coup tu peux enlever l'import de java.awt.Panel
Messages postés
2
Date d'inscription
samedi 30 janvier 2021
Statut
Membre
Dernière intervention
31 janvier 2021

Merci maintenant ça fonctionne bien.