#java #events #user-interface #netbeans
#java #Мероприятия #пользовательский интерфейс #netbeans
Вопрос:
Я немного новичок в графическом интерфейсе netbeans, так что, пожалуйста, потерпите меня.
Я написал программу с несколькими классами, содержащими методы, которые я хочу «связать» с кнопками в графическом интерфейсе. Эти классы были написаны до того, как я создал свою графическую форму с помощью netbeans GUI builder. Иногда это очень ограничительно с точки зрения того, что это позволит мне добавить / удалить.
У меня есть форма, и в ее основном методе я вызвал экземпляр класса, который сам создает массив из 200 «фреймов» (другой тип класса, который я создал). Давайте вызовем экземпляр этого класса ‘dM’. Я хотел бы иметь возможность вызывать dM.method() ; однако он продолжает сообщать мне, что пакет dM не существует.
Я был бы удовлетворен даже общим объяснением того, как я мог бы добавлять вызовы к этим методам с помощью моих сгенерированных методов событий в форме GUI.
Любые предложения приветствуются.
Ответ №1:
Вы пробовали использовать шаблон проектирования Model-View-Controller для решения этой проблемы? Это немного сложно, но это позволит вам отделить графический интерфейс от вызова реальных методов (вызов может быть выполнен в контроллере).
Ознакомьтесь: Объяснение Википедии
Есть также несколько хороших внешних ссылок, например, на репозиторий шаблонов Portland.
Кроме того, вы могли бы использовать прослушиватели для вызова методов ваших классов на основе действий в вашем GUI.
Этот ответ очень широкий, но мне понадобилось бы больше деталей / кода для вашей реализации, чтобы предоставить любую помощь, адаптированную конкретно к вашему случаю.
Комментарии:
1. Спасибо, Зак, я думаю, что теперь у меня все равно есть способ обойти это. Я объявил экземпляр рассматриваемого класса в форме GUI и создал его экземпляр в main. Я сделал этот экземпляр равным другому внешнему экземпляру и теперь могу его редактировать. Теперь это позволяет мне вызывать методы без проблем. Я уверен, что это не обязательно самый чистый способ сделать это, но вызываемые на нем функции не слишком сложны, поэтому он работает нормально. Еще раз спасибо за ваши предложения.