2012-03-05 14 views
7

Jak można wywołać metodę, naciskając przycisk J?Java - Metoda połączenia przez JButton

Na przykład:

when JButton is pressed 
hillClimb() is called; 

wiem, jak do wyświetlania komunikatów itp przy naciśnięciu JButton, ale chcę wiedzieć, czy jest możliwe, aby to zrobić?

Wielkie dzięki.

+1

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

Odpowiedz

9

Jeśli wiesz, jak wyświetlać komunikaty po naciśnięciu przycisku, to już wiesz, jak wywołać metodę, ponieważ otwarcie nowego okna jest wywołaniem metody.

Aby uzyskać więcej informacji, możesz zaimplementować ActionListener, a następnie użyć metody addActionListener na swoim JButton. Here to dość podstawowy samouczek na temat pisania ActionListener.

Można użyć anonimową klasę też:

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

Od Javy 8 to samo można napisać znacznie ładniej używając lambda: 'yourButton.addActionListener (e -> hillClimb());' – Lii

1

Trzeba dodać obsługi zdarzeń (ActionListener w Javie) do JButton.

wyjaśnia, jak to zrobić.

4

Oto trywialna aplikacja pokazująca, jak zadeklarować i połączyć przycisk i ActionListener. Mam nadzieję, że uczyni to dla ciebie bardziej zrozumiałym.

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

Fist zainicjować przycisk, a następnie dodać do niej ActionListener

JButton btn1=new JButton(); 

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

z lambda