добавление netbeans rcp в topcomponent во время выполнения

Я работаю над настольным приложением netbeans RCP, и мне нужно динамически добавлять компоненты. Например, у меня есть кнопка, которая, если я нажму на меню, должна добавить компоненты в окно во время выполнения. У меня есть прослушиватель действий для кнопки, и я добавил следующий код в выполненное действие, но не вижу добавленного нового компонента. Любая помощь приветствуется.

TopComponent editorTopComponent = WindowManager.getDefault().findTopComponent("componentId");
editorTopComponent.add(new JButton("TEST"));
editorTopComponent.validate();
editorTopComponent.repaint ();
editorTopComponent.updateUI();

Спасибо


person user1583261    schedule 04.12.2012    source источник
comment
ОБНОВЛЕНИЕ: я каким-то образом заставил его работать, когда изменил макет TopComponent на FlowLayout, не уверен, правильно это или нет, но это сработало.   -  person user1583261    schedule 04.12.2012


Ответы (1)


Если вы хотите создать сейчас экземпляр (более одного), вы можете использовать:

MyTopComponent my = new MyTopComponent();
my.open();
my.requestActive();

если вы хотите открыть TC в одном экземпляре (только), вы можете использовать:

TopComponent editor= WindowManager.getDefault().findTopComponent("componentId");
if(editor!=null){
  JPanel x =editor.getMyPanel();
  x.setVisible(false);
   //some changes
  x.setVisible(true);
  if(!editor.isOpened())editor.open();
}

Йирка

person user1722245    schedule 15.12.2012