Comment puis-je appeler une méthode en appuyant sur un bouton JButton?
Par exemple:
when JButton is pressed
hillClimb() is called;
Je sais comment afficher des messages, etc. en appuyant sur un bouton JButton, mais je veux savoir s’il est possible de le faire?
Merci beaucoup.
Si vous savez comment afficher des messages lorsque vous appuyez sur un bouton, vous savez déjà comment appeler une méthode, car ouvrir une nouvelle fenêtre est un appel à une méthode.
Avec plus de détails, vous pouvez implémenter une ActionListener
puis utiliser la méthode addActionListener
sur votre JButton. Ici est un tutoriel assez basique sur la façon d'écrire une ActionListener
.
Vous pouvez aussi utiliser une classe anonyme:
yourButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
hillClimb();
}
});
Voici une application triviale montrant comment déclarer et lier un bouton et ActionListener. J'espère que cela rendra les choses plus claires pour vous.
import Java.awt.event.ActionEvent;
import Java.awt.event.ActionListener;
import javax.swing.*;
public class ButtonSample extends JFrame implements ActionListener {
public ButtonSample() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(100, 100);
setLocation(100, 100);
JButton button1 = new JButton("button1");
button1.addActionListener(this);
add(button1);
setVisible(true);
}
public static void main(String[] args) {
new ButtonSample();
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("button1")) {
myMethod();
}
}
public void myMethod() {
JOptionPane.showMessageDialog(this, "Hello, World!!!!!");
}
}
Tout d'abord, initialisez le bouton, puis ajoutez-lui ActionListener
JButton btn1=new JButton();
btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
hillClimb();
}
});
Vous devez ajouter un gestionnaire d'événements (ActionListener
en Java) à la JButton
.
Cet article explique comment faire cela.
btnMyButton.addActionListener(e->{
JOptionPane.showMessageDialog(null,"Hi Manuel ");
});
avec lambda