在NetBeans平台上,同时具有主要和次要首选项面板

时间:2014-12-09 10:41:59

标签: java maven netbeans

在我的基于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文件对我来说很好。

1 个答案:

答案 0 :(得分:0)

我明白了:categoryName的值必须在主面板和package-info.java中定义的面板之间有所不同。