Probleme debutant java

zeelox Messages postés 119 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 19031 Statut Modérateur -
salut ! je suis débutant en programmation java et je voudrais dessiner un petit carré bleu. j'ai donc une class main et une class panel :

class main :
package test;

import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class test {

 public static void main(String[] args) {
  JFrame frame = new JFrame("test de titre"); 
  frame.setVisible(true);
  frame.setSize(800, 500);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setLocationRelativeTo(null);
  frame.getContentPane().setBackground( Color.red );
  JPanel panel = new JPanel();
  frame.add(panel);
  panel.setBackground(Color.red); // tout le fond est bien rouge
 }
}

class panel :
package test;

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;

public class panel extends JPanel{
 public void paintComponent(Graphics g){
  g.setColor(Color.red);
  g.fillRect(0, 0, 100, 100);
 }
}

merci d'avance :}
Zeelox(TM) | Graphic Designer

2 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    Il ne te manque pas grand chose...
    • dans test, ligne 16, ce n'est pas un JPanel que tu dois créer mais un panel (la classe qui dessine le carré)
    • dans panel, ligne 9, tu dois mettre color.blue si tu veux un carré bleu...
    • dans panel, paintComponent surcharge JPanel donc il faut que tu appelles la méthode de la classe mère sinon tu vas perdre une partie du comportement.

    public class panel extends JPanel {
        @Override
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.setColor(Color.blue);
            g.fillRect(0, 0, 100, 100);
        }
    }
    0
  2. zeelox Messages postés 119 Date d'inscription   Statut Membre Dernière intervention  
     
    j'ai tout corrigé y compris pour le blue mdr ( en vrai jmen fou un peu que ce soit bleu ou rouge ) mais j'ai une erreur :

    j'ai mit sa ligne 16 :
    Panel panel = new Panel();
    


    et j'ai ceci :
    Description Resource Path Location Type
    Panel cannot be resolved to a type test.java /test/src/test line 16 Java Problem

    du coup j'importe le truc mais ça ne marche toujours pas

    merci a toi

    Zeelox(TM) | Graphic Designer
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      C'est parce que tu as nommé ta classe
      panel
      avec un p minuscule.

      Donc au choix :
      • tu renommes
        class panel
        en
        class Panel
        .
      • tu modifies le constructeur
        new Panel()
        en
        new panel()
        .
      0
    2. zeelox Messages postés 119 Date d'inscription   Statut Membre Dernière intervention   > KX Messages postés 19031 Statut Modérateur
       
      j'essaie ça de suite merci beaucoup :)
      0
    3. zeelox Messages postés 119 Date d'inscription   Statut Membre Dernière intervention   > zeelox Messages postés 119 Date d'inscription   Statut Membre Dernière intervention  
       
      ça ne fonctionne toujours pas, aucun carré.
      mon code :
      package test;
      
      import java.awt.Color;
      import java.awt.Panel;
      
      import javax.swing.JFrame;
      
      public class test {
      
      	public static void main(String[] args) {
      		JFrame frame = new JFrame("test de titre");	
      		frame.setVisible(true);
      		frame.setSize(800, 500);
      		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      		frame.setLocationRelativeTo(null);
      		frame.getContentPane().setBackground( Color.red );
      		Panel panel = new Panel();
      		frame.setContentPane(panel);
      		panel.setBackground(Color.red); // tout le fond est bien rouge
      	}
      }
      
      0
    4. zeelox Messages postés 119 Date d'inscription   Statut Membre Dernière intervention   > zeelox Messages postés 119 Date d'inscription   Statut Membre Dernière intervention  
       
      et l'autre class si besoin
      package test;
      
      import java.awt.Color;
      import java.awt.Graphics;
      import javax.swing.JPanel;
      
      public class panel extends JPanel{
      	public void paintComponent(Graphics g) {
              super.paintComponent(g);
      		g.setColor(Color.blue);
      		g.fillRect(0, 0, 100, 100);
      	}
      }
      0
    5. zeelox Messages postés 119 Date d'inscription   Statut Membre Dernière intervention   > zeelox Messages postés 119 Date d'inscription   Statut Membre Dernière intervention  
       
      et j'aimerais savoir la difference entre panel et JPanel histoire d'être éclairé sur mon erreur. merci :)
      0