Netbeanw не обновляет JPanel после добавления новых компонентов - PullRequest
2 голосов
/ 24 февраля 2010

этот заголовок не может лучше всего описать мою проблему. Я использую Netbean GUI Builder для создания JFrame и нескольких JPanels. Я создаю каждый JPanel в отдельном классе, затем перетаскиваю класс JPanel в JFrame. Проблема заключается в том, что после перетаскивания JPanel в JFrame, если я добавляю компоненты в JPanel, он не показывает дополнительные компоненты в JPanel, содержащиеся в JFrame. Я попытался "очистить и построить", но новый компонент все еще не отображается в JFrame -> JPanel.

Ответы [ 3 ]

1 голос
/ 25 февраля 2010

Матисс хранит кэшированную копию любого компонента, который вы добавляете в палитру. Таким образом, последующие изменения не принимаются автоматически. Чтобы забрать изменения:

  • сохранить и закрыть источник JFrame
  • Убедитесь, что компонент JPanel скомпилирован.
  • Нажмите Tools > Palette > Swing/AWT Components
  • Щелкните правой кнопкой мыши по дереву и выберите Refresh
  • Откройте ваш компонент JFrame. Теперь должны отображаться обновленные компоненты
1 голос
/ 24 февраля 2010

Я знаю, что вы имеете в виду; Matisse (редактор GUI NetBeans) позволяет перетаскивать самосборные контейнеры (например, JPanels) в другие контейнеры (например, JFrames), но любые последующие изменения в первом не будут отражены в последнем. Насколько я знаю, так оно и есть, к сожалению.

Это одна из причин, по которой, я думаю, Матисс можно использовать только для быстрого прототипирования и игры. Для чего-либо серьезного, графический интерфейс должен быть закодирован вручную.

0 голосов
/ 30 апреля 2011

Была такая же проблема, все, что вам нужно сделать, это:

1) перекомпилировать новый подкомпонент JPanel
2) закройте форму, связанную с родительским JPanel
3) заново откройте родительскую Jpanel из дерева проекта

Обновленная подпанель теперь должна отображаться. Матисс отображает субпанель только когда вы открываете форму или добавляете новую субпанель. Таким образом, единственный способ обновить дисплей без удаления и повторного добавления подпанели - это закрыть и снова открыть ее.

...