У меня есть три класса. Один из них - рабочий класс, который выполняет всю тяжелую работу, но ничего не отображает. Остальные два - это классы GUI, один из которых вызывает другой. Тот, который вызывает второй класс GUI, имеет рабочий класс open.Общение между открытыми классами
Первый GUI вызывает второй с этим методом:
protected void openAdd() {
AddPet add = new AddPet(ADD_PROMPT, FIELDS, DATE_PROMPT);
add.setVisible(true);
}
Второй класс GUI используется для получения информации от пользователя, который используется в классе рабочих, но, как я уже класс рабочий открыт в первом графическом интерфейсе я не хочу открывать его снова, и я хочу использовать часть информации в первом графическом интерфейсе.
Что мне нужно сделать, это передать эту информацию во втором графическом интерфейсе обратно в первый графический интерфейс, чтобы он мог работать с ним и передать его классу open worker.
Как это сделать?
EDIT: Я думаю, что лучшим вариантом было бы вызвать метод в первом графическом интерфейсе из второго графического интерфейса, но я не знаю, возможно ли это.
М-В-С является путь. Используйте одну модель для всех, и оба графического интерфейса отображают свои представления на основе состояния модели. –
Вы можете передать ссылку класса «рабочий» во второй класс GUI ... Попытайтесь уменьшить экспозицию своих классов, если только второй класс GUI не должен знать о первом классе GUI, я бы не стал подвергать его воздействию , так как это объединяет код вместе, который вам не нужен, и предоставляет первый класс GUI потенциально нежелательным изменениям. – MadProgrammer
'' Я думаю, что лучшим вариантом было бы вызвать метод в первом графическом интерфейсе из второго графического интерфейса, t знать, возможно ли это возможно. "-" GUI "- объекты, чистые и простые. Любой объект может вызывать открытый метод другого объекта, если он имеет правильную ссылку. Опять же, я по-прежнему считаю, что ваш лучший вариант - использовать структуру M-V-C, но, как и в большинстве случаев, дьявол существует в деталях. Если вам нужна более конкретная помощь, тогда вы сначала сообщите нам больше подробностей и покажите нам свой соответствующий код, желательно как [минимальная примерная программа или MCVE] (http://stackoverflow.com/help/mcve). –