[java] identifier expected after this tocken
Résolu
domxaline
-
domxaline -
domxaline -
Bonjour,
voilà mon classe DecorNuit donne une erreur suivant
"identifier expected after this tocken"
pourtant,dans la classe DecorJour, j'ai aucun pb
veullez m'aider svp
voilà mon code:
voilà mon classe DecorNuit donne une erreur suivant
"identifier expected after this tocken"
pourtant,dans la classe DecorJour, j'ai aucun pb
veullez m'aider svp
voilà mon code:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
import com.sdz.decorator.DecorJour;
import com.sdz.decorator.DecorNuit;
import com.sdz.decorator.Item;
public class Panneau extends JPanel
{
private Item decor;
/*
* @param decor
* */
public Panneau(Item decor)
{
super();
this.decor=decor;
}
/*
* Par défaut
* */
public Panneau()
{
this.decor=new DecorJour(this);
}
public void paintCoponent(Graphics g)
{
this.decor.paintComponent(g);
}
}
package com.sdz.decorator;
import java.awt.Graphics;
import javax.swing.JPanel;
public abstract class Item
{
/* conteneur parent */
protected JPanel parent;
/* Constructeur avec paramètres
* @param width
* @param height
*/
public Item(JPanel pan)
{
this.parent=pan;
}
/* Constructeur par défaut */
public Item()
{
}
public void paintComponent(Graphics g)
{
this.parent.getGraphicsConfiguration();
}
}
package com.sdz.decorator;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class DecorJour extends Item
{
/*
*
* */
public DecorJour()
{
super();
}
/*
* @param width
* @param height
* */
public DecorJour(JPanel pan)
{
super(pan);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
//Ciel bleu
g.setColor(Color.blue);
g.fillRect(0, 0, this.parent.getWidth(),this.parent.getHeight()-this.parent.getHeight()/3);
//Pelouse
g.setColor(Color.green);
g.fillRect(0, this.parent.getHeight()-this.parent.getHeight()/3,this.parent.getWidth(),this.parent.getHeight());
//Le soleil
g.setColor(Color.yellow);
g.fillOval(this.parent.getWidth()-this.parent.getWidth()/4,this.parent.getWidth()/12,this.parent.getWidth()/6,this.parent.getWidth()/6);
}
}
package com.sdz.decorator;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class DecorNuit extends Item
{
/*
*
* */
public DecorNuit()
{
super();
}
/* @param pan */
public DecorNuit(JPanel pan)
{
super(pan);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
}
//La nuit
g.setColor(Color.black);
g.fillRect(0, 0, this.parent.getWidth(),this.parent.getHeight()-this.parent.getHeight()/3);
//Pelouse
g.setColor(new Color(0,138,0));
g.fillRect(0, this.parent.getHeight()-this.parent.getHeight()/3,this.parent.getWidth(),this.parent.getHeight());
//La lune
g.setColor(Color.white);
g.fillOval(this.parent.getWidth()-this.parent.getWidth()/4,this.parent.getWidth()/12,this.parent.getWidth()/6,this.parent.getWidth()/6);
}
import javax.swing.JFrame;
public class Fenetre extends JFrame
{
public Fenetre()
{
this.setSize(300,300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Decorateur");
this.setResizable(false);
this.setContentPane(new Panneau());
}
public static void main (String[]args)
{
Fenetre fen=new Fenetre();
fen.setVisible(true);
}
}
A voir également:
- Identifier expected after this token java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
5 réponses
j'ai corrigé comme suivant:
mais affiche une fênetre vide
aidez moi svp
maintenant il montre aucun erreur
package com.sdz.decorator;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class DecorNuit extends Item
{
/*
*
* */
public DecorNuit()
{
super();
}
/* @param pan */
public DecorNuit(JPanel pan)
{
super(pan);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
//La nuit
g.setColor(Color.black);
g.fillRect(0, 0, this.parent.getWidth(),this.parent.getHeight()-this.parent.getHeight()/3);
//Pelouse
g.setColor(new Color(0,138,0));
g.fillRect(0, this.parent.getHeight()-this.parent.getHeight()/3,this.parent.getWidth(),this.parent.getHeight());
//La lune
g.setColor(Color.white);
g.fillOval(this.parent.getWidth()-this.parent.getWidth()/4,this.parent.getWidth()/12,this.parent.getWidth()/6,this.parent.getWidth()/6);
}
}
mais affiche une fênetre vide
aidez moi svp
DecorJour s'affiche, mais DecorNuit s'affiche pas
j'ai corrigé une erreur dans la classe panneau
j'ai corrigé une erreur dans la classe panneau
...............................................................
..............................................................
public void paintComponent(Graphics g)
{
this.decor.paintComponent(g);
}
Les méthodes que tu redéfinis dans une classe fille doit avoir strictement le même nom que celle de la classe mère, sinon ça ne peut pas marcher.
Pour vérifier ce genre de problème je te conseilles de systématiquement rajouter l'annotation @Override à la méthode que tu redéfinis, ainsi si pour une raison ou une autre cette méthode ne correspond pas à celle de la classe mère tu auras une erreur ce qui te permettras de corriger le problème.
Exemple :
Alors que si tu renommes correctement cette méthode pour surcharger la classe JPanel ça marche :
Pour vérifier ce genre de problème je te conseilles de systématiquement rajouter l'annotation @Override à la méthode que tu redéfinis, ainsi si pour une raison ou une autre cette méthode ne correspond pas à celle de la classe mère tu auras une erreur ce qui te permettras de corriger le problème.
Exemple :
@Override // The method paintCoponent of type Panneau must override or implement a supertype method public void paintCoponent(Graphics g) { this.decor.paintComponent(g); }
Alors que si tu renommes correctement cette méthode pour surcharger la classe JPanel ça marche :
@Override public void paintComponent(Graphics g) { this.decor.paintComponent(g); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question