Evenement de boutton en java

Bonjour,
j'ai un programme en java dessus que lorsque je clic sur le boutton, il m'affiche le courbe (panel graphique)mais la probleme que je ne trouve pas la methode de faire l'action et la synchronisation entre le boutton et la partie graphique.
aider moi svp
code de programme **************
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

class dessin extends JPanel
{
dessin(){}
public void paint(Graphics g)
{

g.setColor(Color.black);
g.drawLine(5,75,500,75);
g.drawLine(5,10,5,140);
g.drawLine(3,30,7,30);

int i=0;String ch="010110";
int x1=5;
int x2=0;
int y1=75;
int y2=75;

int p=0;
for (i=0;i<6;i++)
{

if (ch.charAt(i)=='0')
{
if(p==1)
{
p=0;
g.setColor(Color.darkGray);
g.drawLine(x1,y1,x1,y2+45);
}
//x1=x2;
y1=75;
y2=75;
x2=x2+50;
g.setColor(Color.RED);
g.drawLine(x1,y1,x2,y2);
x1=x2;
}

if (ch.charAt(i)=='1')
{
if(p==0)
{
p=1;
g.setColor(Color.darkGray);
g.drawLine(x1,y1,x1,y2-45);
}
//x1=x2;
p=1;
x2=x2+50;
y1=30;
y2=30;
g.setColor(Color.red);
g.drawLine(x1,y1,x2,y2);
System.out.println(x1+","+y1+"--->"+x2+","+y2);
x1=x2;
}
}

}
}
class codage extends JFrame implements ActionListener
{
class dessin extends JPanel
{
dessin(){}
public void paint(Graphics g)
{

g.setColor(Color.black);
g.drawLine(5,75,500,75);
g.drawLine(5,10,5,140);
g.drawLine(3,30,7,30);

int i=0;String ch="010110";
int x1=5;
int x2=0;
int y1=75;
int y2=75;

int p=0;
for (i=0;i<6;i++)
{

if (ch.charAt(i)=='0')
{
if(p==1)
{
p=0;
g.setColor(Color.darkGray);
g.drawLine(x1,y1,x1,y2+45);
}
//x1=x2;
y1=75;
y2=75;
x2=x2+50;
g.setColor(Color.RED);
g.drawLine(x1,y1,x2,y2);
x1=x2;
}

if (ch.charAt(i)=='1')
{
if(p==0)
{
p=1;
g.setColor(Color.darkGray);
g.drawLine(x1,y1,x1,y2-45);
}
//x1=x2;
p=1;
x2=x2+50;
y1=30;
y2=30;
g.setColor(Color.red);
g.drawLine(x1,y1,x2,y2);
System.out.println(x1+","+y1+"--->"+x2+","+y2);
x1=x2;
}
}

}
}
JButton b=new JButton();
JLabel l=new JLabel();
JTextField f=new JTextField();
JPanel p=new JPanel();
JPanel p2=new JPanel();
int x=0;
JFrame fr=new JFrame("Mon dessin");
Graphics g1;

codage()
{
b.setText("dessinez");
l.setText("codage de nombre binaire:");
f.setColumns(8);
p.add(l);
p.add(f);
p.add(b);
dessin d= new dessin();
/// p.add(d.paint(g1));
fr.setSize(300,100);
p2.add(d);
fr.getContentPane().setLayout(new GridLayout(2,1));
fr.getContentPane().add(p);
fr.getContentPane().add(p2);
fr.setSize(400,400);
fr.setVisible(true);
b.addActionListener(this);
}

public void actionPerformed (ActionEvent e)
{
if (e.getSource()==b)
{

String s=f.getText();
System.out.println(s);
if (s.length()>8)
JOptionPane.showMessageDialog(this,"vous etes dépassé le 8 bits ","dépassement de limite", JOptionPane.WARNING_MESSAGE);

//this.paint(g1);
//this.repaint();

}

}

public static void main(String[] args)
{

new codage();
}
}

//*************** fin de programme

5 réponses

  1. le probleme que je n'arrive pas a synchroniser le bouton avec mon partie graphique
    lorque je clic sur le boutton le graphique s'affiche sinon rien affiché.
    1. oui c ça la probleme: c l'affectation de l'action au boutton .
      et merci de votre réponse
      1. merci pour l'exemple mais l'affichage de courbe est différent a un affichage simple au msdos.
        1. Modérateur
          Ce n'est qu'un exemple pour montrer comment mettre en place l'évènement.
          Dans actionPerformed, si tu remplaces le
          System.out.println("Button1 has been clicked");
          par ta méthode (dessin.main ?) qui affiche ta courbe, ça devrait faire l'affaire...