| |||||
| Dernière réponse | |
|---|---|
| Sujet : [java] gestion d'évenement ? y a un hic qqpart | |
| gfive | Salut, Pour que ça marche, il faudrait plutpot faire un truc du genre : import java.awt.*; import java.awt.event.*; public class Aplig extends Frame implements ActionListener{ Button bcercle =new Button("Cercle" ); Button beffacer =new Button("Effacer" ); Button bquitter=new Button("Quitter" ); MyCanvas canvas; Panel pan1=new Panel(); public Aplig(){ setLayout(new BorderLayout()); pan1.add(bcercle); pan1.add(beffacer); pan1.add(bquitter); bquitter.addActionListener(this); bcercle.addActionListener(this); beffacer.addActionListener(this); add(pan1, BorderLayout.NORTH); canvas = new MyCanvas(this); add(canvas, BorderLayout.CENTER); setSize(400,600); setVisible(true); } public static void main(String[]argv){ new Aplig(); } public void actionPerformed(ActionEvent e){ Graphics g=getGraphics(); Object evt=e.getSource(); if (evt==bquitter){ System.exit(0); } else if (evt==bcercle){ canvas.drawCircle(); } else if (evt==beffacer){ canvas.clear(); } } public class MyCanvas extends Canvas { public boolean cercle = true; public Aplig parent; public MyCanvas(Aplig parent) { super(); this.parent = parent; } public void paint(Graphics g) { if (cercle) { g.setColor(Color.red); g.fillOval(70,100,100,100); } else { g.setColor(parent.getBackground()); g.fillRect(0, 0, getSize().width, getSize().height); } } public void drawCircle() { cercle = true; repaint(); } public void clear() { cercle = false; repaint(); } } } En effet, pour être sur de ce que l'on fait en AWT, il faut : * Soit utiliser un canvas, * soit modifier la méthode paint(Graphics g) des widgets. Voila voila.. |
| Vue Rapide de la discussion |
|---|