Используя статические заводские классы для генерации компонентов GUI - как и где добавить необходимые слушатели?

StackOverflow https://stackoverflow.com/questions/3543419

Вопрос

Я хотел бы использовать заводские классы и методы для генерации компонентов 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. Возможно, вы захотите посмотреть на Учебные пособия, если бы вы хотели, чтобы некоторые отличные проектные ссылки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top