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