【问题标题】:netbeans rcp adding to topcomponent at runtimenetbeans rcp 在运行时添加到 topcomponent
【发布时间】:2025-11-23 12:10:02
【问题描述】:

我正在开发一个 netbeans RCP 桌面应用程序,并且需要动态添加组件。例如,我有一个按钮,如果我单击菜单应该在运行时将组件添加到窗口。我有一个按钮的动作监听器,我在执行的操作中添加了以下代码,但没有看到添加的新组件。任何帮助表示赞赏。

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

谢谢

【问题讨论】:

  • 更新:当我将 TopComponent 的布局更改为 FlowLayout 时,我不知何故让它工作了,不确定这是否正确,但它有效。

标签: netbeans-7 netbeans-platform


【解决方案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();
}

吉尔卡

【讨论】: