Rien ne s'affiche sur ma fentre Java.

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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.
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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
0
Utilisateur anonyme
 
Merci maintenant ça fonctionne bien.
0