2012-03-05 2 views
7

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

Например:

when JButton is pressed 
hillClimb() is called; 

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

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

+1

См http://docs.oracle.com/javase/tutorial/uiswing/ components/button.html – DNA

ответ

9

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

С дополнительной информацией вы можете ввести ActionListener, а затем использовать метод addActionListener на вашем JButton. Here - довольно простой учебник о том, как написать ActionListener.

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

yourButton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     hillClimb(); 
    } 
}); 
+3

С Java 8 то же самое можно записать намного красивее, используя лямбда: 'yourButton.addActionListener (e -> hillClimb()); – Lii

1

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

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

4

Вот тривиальное приложение, показывающее, как объявлять и связывать кнопку и 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

Кулак инициализации кнопку, а затем добавить к нему ActionListener

JButton btn1=new JButton(); 

btn1.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e){ 
     hillClimb(); 
    } 
}); 
0
btnMyButton.addActionListener(e->{ 
     JOptionPane.showMessageDialog(null,"Hi Manuel "); 
    }); 

с лямбда

Смежные вопросы