2016-03-22 16 views
-2
public class start implements ActionListener { 

    public void actionPerformed(ActionEvent aL) { 
     method(arguments); 

    } 
    } 

method(arguments) { 
    //stuff 
} 

Ich möchte ein JButton das Programm anweisen, eine Methode unter Verwendung der Argumente „Zeug“ zu starten, damit ich die Action oben auf die Schaltfläche setzen jedoch die Action keinen Zugriff auf die Argumente und ich don Ich weiß nicht, wie ich es ihnen geben soll (ich schaute auf die Orakel-Dokumente und konnte es nicht herausfinden). Ich habe versucht, dieses:Passing Argumente zu Action

actionPerformed(ActionEvent aL, stuff) { 

und das nicht funktioniert, erhalte ich die Fehler

Compute.java:45: error: Compute.start is not abstract and does not override abstract method actionPerformed(ActionEvent) in ActionListener 
    public class start implements ActionListener { 
     ^

Und ich versuchte, eine @Override setzen, aber Sie können nicht, dass nach dem Compiler außer Kraft setzen. Also, wie kann ich dem ActionListener die Argumente geben oder habe die Methode außerhalb der Schaltfläche, sondern erst nach dem Drücken der Schaltfläche, aber ich benutze eine JProgressBar innerhalb des JFrames, in dem die Schaltfläche die Methode als Timer-Sache verwendet Es wäre also besser, die Argumente an den actionListener zu übergeben

+0

Willkommen bei StackOverflow! Sie können versuchen, Ihren Code als [mcve] –

+1

10 zu veröffentlichen. Diese Art von Zeug ist OOP 101, die lange vor dem Versuch von GUIs aussortiert werden sollte. –

Antwort

7

Sie können die Argumente von Konstruktor übergeben. Aber natürlich bedeutet das, dass Sie auf diese Weise die Argumente nur beim Erstellen des ActionListener übergeben können.

public class Start implements ActionListener { 

    SomeType arguments; 
    public Start (SomeType arguments) { 
     this.arguments = arguments; 
    } 

    public void actionPerformed(ActionEvent aL) { 
     method(arguments);  
    } 
} 
Verwandte Themen