Evenement de boutton en java

saber07 Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
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





A voir également:

5 réponses

saber07 Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   20
 
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é.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Je n'ai pas vraiment regardé le code parce que je ne me suis jamais vraiment intéressé à java.awt, javax.swing... mais je pense que tu peux créer un Button, lui ajouter un ActionListener avec addActionListener où ta méthode dessin.main sera l'action à effectuer.

Regarde la documentation, elle est très riche, tu trouveras forcément.
0
saber07 Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   20
 
oui c ça la probleme: c l'affectation de l'action au boutton .
et merci de votre réponse
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Voici un exemple
J'ai directement pris un exemple de JButton vu que c'est ce que tu utilises ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
saber07 Messages postés 116 Date d'inscription   Statut Membre Dernière intervention   20
 
merci pour l'exemple mais l'affichage de courbe est différent a un affichage simple au msdos.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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...
0