Java - вызов метода через JButton - PullRequest
9 голосов
/ 05 марта 2012

Как я могу вызвать метод, нажав JButton?

Например:

when JButton is pressed
hillClimb() is called;

Я знаю, как отображать сообщения и т.д. при нажатии кнопки JButton, но хочу знать, еслиВозможно ли это сделать?

Большое спасибо.

Ответы [ 5 ]

11 голосов
/ 05 марта 2012

Если вы знаете, как отображать сообщения при нажатии кнопки, то вы уже знаете, как вызвать метод, так как открытие нового окна - это вызов метода.

Более подробно вы можете реализовать ActionListener и затем использовать метод addActionListener на вашем JButton. Здесь - довольно простое руководство по написанию ActionListener.

Вы также можете использовать анонимный класс:

yourButton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
        hillClimb();
    } 
});
4 голосов
/ 05 марта 2012

Вот тривиальное приложение, показывающее, как объявить и связать кнопку и ActionListener. Надеюсь, это прояснит вам все.

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!!!!!");
    }
}
1 голос
/ 28 августа 2015

Сначала вы инициализируете кнопку, затем добавляете к ней ActionListener

JButton btn1=new JButton();

btn1.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
        hillClimb();
   }
});
1 голос
/ 05 марта 2012

Вам необходимо добавить обработчик событий (ActionListener в Java) к JButton.

В этой статье объясняется, как это сделать.

0 голосов
/ 24 декабря 2016
    btnMyButton.addActionListener(e->{
        JOptionPane.showMessageDialog(null,"Hi Manuel ");
    });

с лямбдой

...