Вызов метода из класса вне моей формы GUI в netbeans

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