[JAVA] interface graphique avec Swing

interface graphique avec Swing [JAVA] - Programmation

Marsh Posté le 01-03-2002 à 12:00:38    

voilà je veux créer une interface graphique avec une zone de dessin au centre et une zone de "boutons" en bas...Je voudrais qu'en cliquant sur un bouton un dessin s'affiche dans la zone centrale.
Le problème c que pour différencier les 2 zones je suis obligé de faire 2 classes (enfin je crois...) et je n'arrive pas à relier les conditions d'affichage entre les 2 classes (cad quand je clique sur le bouton A le dessin correspondant doit s'afficher etc...)
Peut-être je n'utilise pas les bonnes fonctions (je découvre Swing et je suis loin d'être un pro en Java!) donc j'aimerais savoir ce que vous en pensez...merci d'avance
 
une partie du code:
 
import java.awt.event.*;  
import java.awt.*;  
import javax.swing.*;  
public class ButtonPanel extends JPanel  
   implements ActionListener     // interface écouteur d'événements  
{  private JButton No;  
   private JButton And;  
   private JButton Or;
   private JButton Xor;
   private int m;
   public ButtonPanel() // constructeur de la classe ButtonPanel  
   {  No = new JButton("AND" );  
      And = new JButton("OR" );  
      Or = new JButton("XOR" );
      Xor = new JButton("NAND" );
      // Insertion des trois boutons dans l'objet ButtonPanel  
      add(No);  
      add(And);  
      add(Or);
      add(Xor);
      // Les sources d'événements sont déclarées à l'écouteur  
      No.addActionListener(this);  
      And.addActionListener(this);  
      Or.addActionListener(this);
      Xor.addActionListener(this);
      }  
               
   public void actionPerformed(ActionEvent evt)  
   // Permet de traiter l'événement en fonction de l'objet source  
   {  Object source = evt.getSource();
      if (source == No) m=1;  
    else if (source == And) m=2;  
    else if (source == Or) m=3;
    else if (source == Xor) m=4;
    }  
}
 
public class DessinCanvas extends JPanel{
    private int m;
    public void paint(Graphics g){
        if (m==1) g.fillRect(50,250,20,20);
        else if (m==2) g.fillRect(100,250,20,20);  
        else if (m==3) g.fillRect(150,250,20,20);
        else if (m==4) g.fillRect(200,250,20,20);
        }
}
 
class ButtonFrame extends JFrame  
{  
    public ButtonFrame()  
   {      
      setTitle("ButtonTest" );  
      setSize(600, 600);
      addWindowListener(new WindowAdapter()  
         {  public void windowClosing(WindowEvent e)  
            {  System.exit(0);  
            }  
         } );  
      Container contentPane = getContentPane();
      contentPane.setLayout(new BorderLayout());
      contentPane.add(new ButtonPanel(),BorderLayout.SOUTH);
      contentPane.add(new DessinCanvas(),BorderLayout.CENTER);
      }
     
}
 
enfin le main :
 
public class ButtonTest  
{  public static void main(String[] args)  
   {  JFrame frame = new ButtonFrame();
         
      frame.show();
     }  
}

Reply

Marsh Posté le 01-03-2002 à 12:00:38   

Reply

Marsh Posté le 01-03-2002 à 14:47:16    

C'est ta classe DessinCanvas qui doit etre actionListener des boutons.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed