2012-03-05 12 views
7

Come posso chiamare un metodo premendo un JButton?Java - Metodo chiamata tramite JButton

Ad esempio:

when JButton is pressed 
hillClimb() is called; 

so come visualizzare i messaggi, ecc quando si preme un JButton, ma voglio sapere se è possibile fare questo?

Molte grazie.

+1

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

risposta

9

Se si sa come visualizzare i messaggi quando si preme un pulsante, allora si sa già come chiamare un metodo come l'apertura di una nuova finestra è una chiamata a un metodo.

Con maggiori dettagli, è possibile implementare uno ActionListener e quindi utilizzare il metodo addActionListener sul JButton. Here è un tutorial di base su come scrivere un ActionListener.

è possibile utilizzare una classe anonima troppo:

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

Dato che Java 8 la stessa cosa può essere scritta molto più carina usando un lambda: 'yourButton.addActionListener (e -> hillClimb());' – Lii

1

è necessario aggiungere un gestore di eventi (ActionListener in Java) per la JButton.

This article spiega come procedere.

4

Ecco un'app banale che mostra come dichiarare e collegare il pulsante e ActionListener. Spero che renderà le cose più chiare per te.

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

Pugno si inizializza il pulsante, quindi aggiungere ad essa ActionListener

JButton btn1=new JButton(); 

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

con lambda

Problemi correlati