2016-05-29 10 views
0

enter image description herewie für Schaltflächen in Java Aktion Hörer definieren

Ich habe einen JFrame, die JButton.I haben sechs Tasten in diesem Rahmen, aber ich weiß nicht, wie Action-Listener für diese buttons.please Hilfe definieren um dieses Problem zu lösen.

+0

Aktualisieren Sie Ihre Frage mit Code, der zeigt, was Sie bisher getan haben. Auf diese Weise werden die Menschen wissen, wie sie helfen können. –

Antwort

2

Zuerst müssen Sie das Paket java.awt.event. * Importieren, um Ereignisse zu aktivieren. Nach dem Klassennamen müssen Sie den ActionListener implementieren, damit die Klasse Ereignisse verarbeiten kann. Wenn Sie die Schaltflächen erstellt haben, müssen Sie jeder Schaltfläche einen Aktionslistener hinzufügen. Da Sie nicht gezeigt haben, welchen Code Sie verwenden, mache ich ein Beispiel mit einem einfachen Programm, das Votes zählt. Wenn der Benutzer auf yesButton klickt, werden die Votes um 1 erhöht und wenn der Benutzer auf noButton klickt, werden die Votes um 1 verringert.

Hier ist der Code ein Action jeder Taste hinzuzufügen:

yesButton.addActionListener(this); 
noButton.addActionListener(this); 

den folgenden Code dann schreiben Sie die Ereignisse behandeln:

public void actionPerformed(ActionEvent e) { 
    JButton src = (JButton) e.getSource(); 
    if(src.getActionCommand().equals("Yes")) { 
    yesCount++; 
    } else { 
    noCount++; 
    } 
    label.setText("Difference: " + (yesCount - noCount)); 
} 

wenn Sie 6 Tasten haben Sie eine if-Anweisung haben müssen und dann 5 "else if" Anweisungen statt nur a n wenn und eine andere Aussage.

0

Werfen Sie einen Blick auf die Java-Tutorials, wie ActionListeners zu verwenden:

https://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

Hier ist ein einfaches Beispiel ist:

import java.awt.BorderLayout; 
    import java.awt.Dimension; 
    import java.awt.event.ActionEvent; 
    import java.awt.event.ActionListener; 

    import javax.swing.JButton; 
    import javax.swing.JComponent; 
    import javax.swing.JFrame; 
    import javax.swing.JPanel; 

    public class Hello extends JPanel implements ActionListener { 

     JButton button; 

     public Hello() { 

      super(new BorderLayout()); 
      button = new JButton("Say Hello"); 
      button.setPreferredSize(new Dimension(180, 80)); 
      add(button, BorderLayout.CENTER); 

      button.addActionListener(this); // This is how you add the listener 
     } 

     /** 
     * Invoked when an action occurs. 
     */ 
     public void actionPerformed(ActionEvent e) { 
      System.out.println("Hello world!"); 
     } 


     private static void createAndShowGUI() { 

      JFrame frame = new JFrame("Hello"); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

      JComponent newContentPane = new Hello(); 

      newContentPane.setOpaque(true); 
      frame.setContentPane(newContentPane); 
      frame.pack(); 
      frame.setVisible(true); 
     } 

     public static void main(String[] args) { 
      javax.swing.SwingUtilities.invokeLater(new Runnable() { 
       public void run() { 
        createAndShowGUI(); 
       } 
      }); 
     } 
    } 
0

Tasten haben eine Methode namens addActionListener, verwenden Sie, dass für Hinzufügen des Aktionslisteners, den Sie für den Klick implementieren können ...

Beispiel:

dummyButton = new JButton("Click Me!"); // construct a JButton 
add(dummyButton); // add the button to the JFrame 
dummyButton.addActionListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     System.out.println(" TODO Auto-generated method stub"); 
    } 
}); 
0

Es ist wirklich einfach.

Ich nehme an, Sie haben eine Instanz Ihres Knopfes, richtig? Nehmen wir an, diese Instanz heißt myButton.

Sie können nur eine Aktion Hörer hinzufügen addActionListener durch den Aufruf:

myButton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     // Do whatever you like here 
    } 
}); 

Protip: nächste Mal, wenn Sie nicht wissen, welche Methode aufzurufen, geben Sie einfach den Namen der Instanz und .. Dann zeigt Ihnen Ihre IDE alle Methoden an, die Sie aufrufen können, es sei denn, Sie verwenden keine IDE. Wenn dies der Fall ist, laden Sie einen herunter.