Разбор данных обратно на главную панель (Java / Swing) - PullRequest
0 голосов
/ 17 октября 2011

Настройка: У меня есть mainPanel с панелью tabbedPane, у меня есть отдельная JPanel 'extra', extra создает объекты, и я хочу передать этот объект обратно на mainPanel, где я могу его использовать / добавить в структуру данных.

Рамка> Панель> Панель с вкладками> Панель (отдельный класс, создается как новый объект)

Я попытался добавить слушатель в mainPanel, который проверяет, изменяется ли логическое значение в PanelExtra, а затем запускает метод и т. Д., Но он не работает.

Я бы сделал метод в mainPanel для принятия объекта, но я не знаю, как обратиться к нему. (getRootPane () ничего не возвращал)

Также я не уверен, что я использую правильную терминологию, в то время как меня обучали Java в среде Unix командной строки, Swing очень нов для меня.

Я пробовал Слушатели, Наблюдатели и в настоящее время рассматриваю объект, созданный в корне и переданный ВНИЗ через все объекты (поскольку java передает по ссылке, я мог бы передавать информацию так далеко, как хочу). Если это не совсем глупая идея , дайте мне знать, и мы все можем идти о нашей жизни Если есть лучший способ сделать это, это было бы здорово.

(Обзор файлов)

[programApp]> [programView> tabbedPane]> [панель] Панель создается с использованием нового и существует в отдельном классе. Я хочу передать данные обратно из Panel в programView (projectNameView, как в netbeans)

Я попытаюсь добавить как можно больше информации.

Ответы [ 2 ]

3 голосов
/ 17 октября 2011

Для этого вы можете использовать MVC-шаблон .

На самом деле есть несколько вариантов в зависимости от ваших предпочтений или конкретной задачи. Для очень простого случая вы можете просто использовать класс со статическими полями для передачи объектов. Другой способ - определить ваших собственных слушателей, например:

private myPanel extends JPanel implements Notification {

... и где вы создаете эту панель:

myPanel.addNotificationReciever(mainPanel);

Позже вы просто звоните fireNotification или как угодно и реализуете подобный слушатель для вашего mainPanel.

1 голос
/ 17 октября 2011

SirVaulterScoff дал лучший ответ, на мой взгляд, но я думал, что добавлю еще немного (пока не могу добавить комментарии, поэтому я создаю новый ответ).

Вам также следует прочитать шаблон Observer-Observable ( статья в Википедии ), который используется вместе с шаблоном MVC. Это будет полезно при соединении ваших классов MVC, чтобы убедиться, что все как можно слабее связано.

В качестве дополнительного комментария: MVC - это действительно шаблон, на который вам следует обратить внимание, если вы хотите создавать приложения с пользовательским интерфейсом. Это избавит вас от многих головных болей и облегчит поддержку и расширение вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...