在基于 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 {
[...]
}
运行应用程序并打开首选项 View ,一切看起来都符合预期。但是,在我单击主面板的图标一次后,我无法返回到辅助容器 - 内容保持不变。单击内置图标即可按预期工作。
我还观察到,仅调用了主面板的 JComponent 的 repaint() 方法,而不调用辅助面板的方法。
注意:我使用 Maven nbm-plugin 进行构建;无论如何,我认为问题与此无关,因为生成的 list 文件对我来说看起来不错。
最佳答案
我明白了:主面板和 package-info.java 中定义的面板之间的 categoryName
值必须不同。
关于java - 在 NetBeans 平台上,具有主要和次要首选项面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27376939/