Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3140 connectés 

 


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..

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
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..
lamatrice je mes le code c'est plus simple;
voilà le problème c'est que quand on clic sur le bouton "cercle" y'a pas de dessin qui aparait ???? et je vois pas pourquoi !!!
 
 
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" );
 Panel pan1=new Panel();
 
 public Aplig(){
  setLayout(new BorderLayout());
  pan1.add(bcercle);pan1.add(beffacer);pan1.add(bq
uitter);
  bquitter.addActionListener(this);
  bcercle.addActionListener(this);
  beffacer.addActionListener(this);
  add(pan1);  
  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){
    g.setColor(Color.red);
    g.fillOval(70,100,100,100);
    }
   else if (evt==beffacer){
    g.setColor(getBackground());
    g.fillRect(0,0,400,600);
    }    
  }
 
}

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)