Используя статические заводские классы для генерации компонентов GUI - как и где добавить необходимые слушатели?
-
30-09-2019 - |
Вопрос
Я хотел бы использовать заводские классы и методы для генерации компонентов GUI, но я не знаю, как и в каком классе различные слушатели должны быть объявлены и добавлены к компонентам.
Если у меня есть простой заводский класс, такой как перечисленные ниже, я должен добавить кнопку ActionListener до его возврата в класс вызова. Если ответ «да», то как я добавить слушателя?
class GUIFactory
{
public static JButton getJButton()
{
JButton aButton = new JButton();
return aButton;
}
}
Предположим, что я хотел использовать метод getjbutton (), чтобы добавить 5 кнопок в графический интерфейс, как бы я кодирую действие ActionListener так, чтобы он был знал, какую кнопку нажал?
Или если слушатели будут добавлены в Calling Class?
JFrame gui = new JFrame();
gui.add(AppFactory.getJButton());
Я пробовал следующее
gui.add(GUIFactory.getJButton().addActionListener(new guiButtonListener()));
и получил ошибку:
«Пустотный» тип не допускается здесь.
Решение
Это потому что addActionListener
Возвращает пустоту. Пытаться:
JButton button = GUIFactory.getJButton();
button.addActionListener(new guiButtonListener())
gui.add(button);
Помните, что программирование Swing GUI довольно идиоматично. Некоторые могут предпочесть использовать Связывание бобов (или другой связывающий раствор) для подключения видов и моделей друг с другом. Один утверждал, что используя Автобус событий Укажите лучшие, низко связанные, высокорадачиемые компоненты GUI. Посмотрите также на Рамки приложения Swing (теперь устарел, но BSAF. за это в очень хорошем состоянии) и КИШКИ фреймворк.
Вы увидите, что есть много попыток для решения проблем программирования и дизайна GUI. Тема очень широкая, а решения сильно различаются.
О, и большие два платформы богатых контента (NetBeans RCP., Eclipse RCP.) Имейте очень специфические API для борьбы с Guis. В качестве примера NetBeans RCP использует Погляди, Узлы а также Окна API для щита разработчика от проблем с качанием. Команда Eclipse бросила качели и написала свой собственный SWT GUI Toolkit. Возможно, вы захотите посмотреть на Учебные пособия, если бы вы хотели, чтобы некоторые отличные проектные ссылки.