在我的基于NetBeans平台的应用程序(RELEASE801)中,我想通过主面板和一些辅助面板扩展首选项面板,我想在另一个主面板中显示它们。
基本上,我所拥有的是1)我的主要小组:
@OptionsPanelController.TopLevelRegistration(
categoryName = "Snap",
iconBase = "...",
keywords = "...",
keywordsCategory = "..."
)
public final class SnapOptionsPanelController extends OptionsPanelController {
[...]
}
2)一个package-info.java,我希望将其解释为第二个主要面板:
@OptionsPanelController.ContainerRegistration(
id = "myId",
categoryName = "Snap",
iconBase = "...",
keywords = "...",
keywordsCategory = "...")
package org.esa.snap.gui.preferences.uibehavior;
import org.netbeans.spi.options.OptionsPanelController;
3)我的辅助面板的一个类,我希望它出现在第二个主要面板下面:
@OptionsPanelController.SubRegistration(location = "SnapPreferences",
displayName ="...",
keywords = "...",
keywordsCategory = "...",
id = "UiBehavior")
public final class UiBehaviorPanelController extends OptionsPanelController {
[...]
}
运行应用程序并打开首选项视图,所有内容首先按预期显示。但是,在我单击主面板的图标一次之后,我无法返回到辅助容器 - 内容保持不变。单击内置图标可按预期工作。
我还观察到只调用了主面板的JComponent的repaint()方法,而不是辅助节点的方法。
注意:我正在使用Maven nbm-plugin进行构建;无论如何,我不认为问题与此有关,因为生成的Manifest文件对我来说很好。
答案 0 :(得分:0)
我明白了:categoryName
的值必须在主面板和package-info.java中定义的面板之间有所不同。