Wie kann ich einen zusätzlichen Parameter übergeben?Objekt als Parameter an ActionListener übergeben
Hier ist ein Beispielcode, um zu versuchen und deutlich zu machen, was ich tun möchte:
public class A {
public static void create(String txt, ActionListener evt){
MenuItem item = new MenuItem(txt);
SomeClass sample_class = new SomeClass();
// Would like to do this...
// item.addActionListener(evt, sample_class);
item.addActionListener(evt);
}
}
public class B {
public static void init(){
A.create("Test", evt -> {
System.out.println("hi");
});
}
}
Was ich tun möchte, die „sample_class“ übergeben, so dass die Aktion Hörer sie verwenden können.
So würde das Endergebnis so sein, so kann ich meine Klasse in den Hörern ...
A.create("Test", (evt, something) -> {
something.do_something();
});
Habe gelesen schon einige Fragen ähnlich wie diese, aber ich kann nicht wickeln mein voraus verwenden um es herum.
Sie müssen keinen zusätzlichen Parameter hinzufügen, erstellen Sie einfach eine Klasse, die ActionListener implementiert, und legen Sie die gewünschten Variablen fest. – Tibrogargan
Ah, ok. Macht Sinn. Ich nehme an, ich kann jetzt keinen Lambda benutzen, oder? – JacketPotatoeFan
"Ich nehme an, es ist verlockend, wenn das einzige Werkzeug, das Sie haben, ein Hammer ist, alles so zu behandeln, als ob es ein Nagel wäre" - Abraham Maslow – Tibrogargan