• # modifie completement ton code

    Posté par . En réponse au message J'arrive pas à récupérer un évenement clavier dans une fenêtre. Évalué à 3.

    Salut, Bon en fait t'a codé ça n'ayons pas peur des mots un peu à l'arrache, le truc de tout foutre en static n'est vraiment pas terrible et tu voit ça fout plein de merde quand on s'en sert pas correctement, je te conseille donc le code suivant,

    tout d'abord utilise ta classe Main (c'est vrai que c'est vraiment mal choisi comme nom) donc je dit bien la classe et pas la méthode, donc le code de la classe :
    package testuih2;


    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Point;
    import java.awt.event.KeyListener;
    import java.awt.event.KeyEvent;
    import testuih2.GUIHelper;
    import testuih2.IDrawable;
    import testuih2.JCanvas;
    import testuih2.RectangleDrawable;

    public class Main implements KeyListener{

    private staticJCanvas jc = new JCanvas();
    private IDrawable rect2;//Pense bien à définir la portée des objets que tu utilise (public/private/protected);

    public Main () {

    jc = new JCanvas();
    jc.setBackground(Color.WHITE);
    jc.setPreferredSize(new Dimension(400,200));
    Dimension dim =new Dimension(40,60);
    IDrawable rect = new RectangleDrawable(Color.RED,new Point(10,10),dim);
    jc.addDrawable(rect);

    this.addKeyListener(this);//à ajouter

    GUIHelper.showOnFrame(jc,"test JCanvas");
    }



    public static void main (String[] args) {

    Main main = new Main(); //à ajouter

    }



    public void keyTyped(KeyEvent e) {



    System.out.print ("Event clavier trouvé");

    System.out.print (e.getKeyChar ());

    Dimension dim2 =new Dimension(40,60);

    rect2 = new RectangleDrawable(Color.RED,new Point(25,30),dim2);

    }



    public void keyPressed(KeyEvent e) {

    System.out.print ("KEY PRESSED: ");

    System.out.print (e.getKeyChar ());

    }





    public void keyReleased(KeyEvent e) {

    System.out.print ("KEY RELEASED: ");

    System.out.print (e.getKeyChar ());

    }

    }


    avec ça ça devrait marcher normalement