Я создаю свинг-программу, которая сможет создавать, редактировать и решать некоторые тесты abcd для учеников.Поскольку я всегда боролся с подключением GUI к остальной части логики моего проекта, я хотел бы наконец понять, как правильно решить эту проблему.Когда я создаю свой GUI и добавляю / редактирую компоненты, довольно просто взаимодействовать с логикой, но я не знаю, что делать, когда дело доходит до реализации методов, реализующих интерфейсы (потому что я не могу передавать параметры, как всегда),Например:
btnName.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
Затем я попытался заставить его работать с помощью этого небольшого урока: Передача переменных в ActionListener в Java , и это произошло в классе и коде, подобном этому:
public class TestActionListener implements ActionListener {
private Test test;
TestActionListener() {}
TestActionListener(Test test)
{
this.test = test;
}
@Override
public void actionPerformed(ActionEvent e) {
this.setTest(test);
}
public Test getTest() {
return test;
}
public void setTest(Test test) {
this.test = test;
}
}
//in GUI class:
button.addActionListener(new TestActionListener(new Test("Some arg")) {
});
Но это не дает мне эффекта доступа, например, к полям класса Test.Я даже не знаю, может ли это решение удовлетворить мою проблему.Я застрял в этом месте с нескольких часов.Я буду ценить каждый маленький кусочек информации (я даже не ищу прямого решения).