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();
}
}