Java Eclipse Swing - как использовать другую логику классов в методах GUI?(например, ActionListener для кнопки) - PullRequest
0 голосов
/ 05 декабря 2018

Я создаю свинг-программу, которая сможет создавать, редактировать и решать некоторые тесты 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.Я даже не знаю, может ли это решение удовлетворить мою проблему.Я застрял в этом месте с нескольких часов.Я буду ценить каждый маленький кусочек информации (я даже не ищу прямого решения).

...