我有一個TopComponent
顯示在properties
模式。有兩種方法可以打開它。netbeans Topcomponent打開兩次
-
通過窗口/頂部的組件打開動作
- 打開一個文件和頂部的組件會自動打開。
我正在配置使用註釋的第一個操作,如下所示。
@ActionID(category = "Window", id = "org.netbeans.modules.plantumlnb.PUMLTopComponent")
@ActionReference(path = "Menu/Window" /*, position = 333 */)
@TopComponent.OpenActionRegistration(displayName = "#CTL_PUMLAction",
preferredID = "PUMLTopComponent")
我手動創建一個新的TopComponent
並呼籲它open
啓用第二個動作。
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
PUMLTopComponent pumltc = new PUMLTopComponent();
pumltc.open();
pumltc.setNewContent(obj);
}
});
當用戶打開文件時,PUMLTopComponent的一個實例由第二個代碼片段打開。但是,如果用戶現在去點擊窗口/打開動作,則打開第二個窗口。
如何註冊手動實例化的帶NetBeans的TopComponent實例,以便當用戶單擊窗口/打開動作時,netbeans使用上述實例而不是創建新實例?
感謝您的回覆。 TopComponent已經是單身人士。查看我的答案,瞭解我的修復的更多細節。 – ShaggyInjun 2013-05-11 19:59:54