Как передать дополнительный параметр?Пропустить объект как параметр для ActionListener
Вот некоторые примеры кода, чтобы попытаться сделать это ясно, что я хочу сделать:
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");
});
}
}
То, что я хотел бы сделать, это пройти «sample_class», так что слушатель действия могут его использовать.
Таким образом, конечный результат будет, как это, так что я могу использовать свой класс в слушателе ...
A.create("Test", (evt, something) -> {
something.do_something();
});
Прочитал немало вопросов, подобных этим, но я не могу обернуть мои упреждающий вокруг него.
Вам не нужно добавлять дополнительный параметр, просто создайте класс, который реализует ActionListener и задает любые переменные-члены, которые вам нравятся. – Tibrogargan
А, ок. Имеет смысл. Я полагаю, что теперь я не могу использовать Лямбду, не так ли? – JacketPotatoeFan
«Наверное, это заманчиво, если единственный инструмент, который у вас есть, - это молот, чтобы все относиться как к гвоздю» - Abraham Maslow – Tibrogargan