Interface graphique

Fermé
hamzadu57000 Messages postés 1 Date d'inscription vendredi 4 avril 2014 Statut Membre Dernière intervention 4 avril 2014 - 4 avril 2014 à 01:30
math 2000 Messages postés 2579 Date d'inscription dimanche 9 septembre 2007 Statut Membre Dernière intervention 7 mai 2016 - 6 avril 2014 à 16:50
Bonjour,

Je dois créer un programme Java capable de controler le déplacement d'un carré rouge 10*10 pixel dans une fenetre. Il doit ce deplacer d'un pas de 10 pixel dans les 4 direction et on dois controler sa direction a l'aide des boutons (z=haut,s=bas,q=gauche,d=droite)

mon soucis est j'ai bien programmer les keyListener pour la gestion des touche mais mon carré ne boouge pas, avez vous une soolution Voici mon code source ci dessous !

Merci !

Code source

2 class ==>1er class :

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Carre extends JPanel implements KeyListener {

public Carre(){
int x=getHeight()/2;
int y=getWidth()/2;

KeyListener kl=new KeyListener(){
Graphics g = getGraphics ();
public void keyTyped(KeyEvent e){
}
public void keyReleased(KeyEvent e){
}
public void keyPressed(KeyEvent e){

char c=e.getKeyChar();
if(c=='z'){
g.fillRect(getX(),getY()+10,10,10);
repaint();
}
if(c=='s'){
g.fillRect(getX(),getY()-10,10,10);
repaint();
}
if(c=='q'){
g.fillRect(getX()-10,getY(),10,10);
repaint();
}
if(c=='d'){
g.fillRect(getX()+10,getY(),10,10);
repaint();
}
}
};
addKeyListener(kl);
}

@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub

}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub

}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}

public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.red);
int h=getHeight();
int w=getWidth();
int x=w/2;
int y=h/2;
g.fillRect(x,y,10,10);
}

}

et 2eme class :

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Principale{
public static void main(String[]args){
JFrame fenetre =new JFrame("Carre rouge");
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Carre dessin=new Carre();
dessin.setPreferredSize(new Dimension(600,480));
fenetre.setContentPane(dessin);
fenetre.pack();
fenetre.setVisible(true);
dessin.requestFocus();

}
}



1 réponse

math 2000 Messages postés 2579 Date d'inscription dimanche 9 septembre 2007 Statut Membre Dernière intervention 7 mai 2016 404
6 avril 2014 à 16:50
j'ai fait un sysout de g et g n'est plus de type graphic ou la variable n'est pas passé dans ton controleur
0