OVH Cloud OVH Cloud

JButton - Evenements

2 réponses
Avatar
Herve
Bonjour à tous,

J'ai aujourd'hui 4 boutons b1,b2,b3 et b4 dans une JFrame
et je souhaiterai créer une seule classe evenements dans laquelle
j'insererai des conditions correspondant à la sélection du bouton.

1- Est-il possible d'avoir une seule classe Evenements pour 4 boutons, si
oui pouvez-vous m'indiquer un exemple.
(sa structure)

merci d'avance à tous.

H.

2 réponses

Avatar
Philippe C
Bonjour,

1- Est-il possible d'avoir une seule classe Evenements pour 4 boutons, si
oui pouvez-vous m'indiquer un exemple.


Aucun probleme :

<CODE>
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test extends JFrame {

JLabel affichage;
JButton b1, b2, b3, b4;
Ecouteur ecouteur;

class DisposeOnClose extends WindowAdapter {
public void windowClosing(WindowEvent we) {
dispose();
}
}

class Ecouteur implements ActionListener {
public void actionPerformed(ActionEvent ae) {
Object o= ae.getSource();
if (!(o instanceof JButton)) return;
JButton b= (JButton) o;
affichage.setText("source de l'action: " + b.getLabel());
}
}

public Test() {

ecouteur= new Ecouteur();

Container cp= getContentPane();
cp.setLayout(new BorderLayout());

// center
JPanel center= new JPanel();
center.setLayout(new FlowLayout());

center.add(b1= new JButton("B1"));
b1.addActionListener(ecouteur);

center.add(b2= new JButton("B2"));
b2.addActionListener(ecouteur);

center.add(b3= new JButton("B3"));
b3.addActionListener(ecouteur);

center.add(b4= new JButton("B4"));
b4.addActionListener(ecouteur);

cp.add(center, BorderLayout.CENTER);

// south
JPanel south= new JPanel();
south.setLayout(new FlowLayout());

south.add(affichage= new JLabel("cliquer sur un bouton ..."));
cp.add(south, BorderLayout.SOUTH);

// dispose on close
addWindowListener(new DisposeOnClose());
}

public static void main(String[] args) {
JFrame frame= new Test();
frame.pack();
frame.show();
}
}
</CODE>

merci d'avance à tous.
De rien !


--
PhilippeC

Avatar
Herve
Super
Merci encore.


"Philippe C" a écrit dans le message de
news: bjkj02$tho$
Bonjour,

1- Est-il possible d'avoir une seule classe Evenements pour 4 boutons,
si


oui pouvez-vous m'indiquer un exemple.


Aucun probleme :

<CODE>
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test extends JFrame {

JLabel affichage;
JButton b1, b2, b3, b4;
Ecouteur ecouteur;

class DisposeOnClose extends WindowAdapter {
public void windowClosing(WindowEvent we) {
dispose();
}
}

class Ecouteur implements ActionListener {
public void actionPerformed(ActionEvent ae) {
Object o= ae.getSource();
if (!(o instanceof JButton)) return;
JButton b= (JButton) o;
affichage.setText("source de l'action: " + b.getLabel());
}
}

public Test() {

ecouteur= new Ecouteur();

Container cp= getContentPane();
cp.setLayout(new BorderLayout());

// center
JPanel center= new JPanel();
center.setLayout(new FlowLayout());

center.add(b1= new JButton("B1"));
b1.addActionListener(ecouteur);

center.add(b2= new JButton("B2"));
b2.addActionListener(ecouteur);

center.add(b3= new JButton("B3"));
b3.addActionListener(ecouteur);

center.add(b4= new JButton("B4"));
b4.addActionListener(ecouteur);

cp.add(center, BorderLayout.CENTER);

// south
JPanel south= new JPanel();
south.setLayout(new FlowLayout());

south.add(affichage= new JLabel("cliquer sur un bouton ..."));
cp.add(south, BorderLayout.SOUTH);

// dispose on close
addWindowListener(new DisposeOnClose());
}

public static void main(String[] args) {
JFrame frame= new Test();
frame.pack();
frame.show();
}
}
</CODE>

merci d'avance à tous.
De rien !


--
PhilippeC