我遵循此指南:https://platform.netbeans.org/tutorials/60/nbm-login.html
我创建了带有属性的非常简单的模块。我的控制器如下所示:
@OptionsPanelController.SubRegistration(
displayName = "#AdvancedOption_DisplayName_TestConf",
keywords = "#AdvancedOption_Keywords_TestConf",
keywordsCategory = "Advanced/TestConf"
)
@org.openide.util.NbBundle.Messages({"AdvancedOption_DisplayName_TestConf=TestConf", "AdvancedOption_Keywords_TestConf=testConf"})
public final class TestConfOptionsPanelController extends OptionsPanelController {
private TestConfPanel panel;
private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);
private boolean changed;
public void update() {
getPanel().load();
changed = false;
}
public void applyChanges() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
getPanel().store();
changed = false;
}
});
}
public void cancel() {
// need not do anything special, if no changes have been persisted yet
}
public boolean isValid() {
return getPanel().valid();
}
public boolean isChanged() {
return changed;
}
public HelpCtx getHelpCtx() {
return null; // new HelpCtx("...ID") if you have a help set
}
public JComponent getComponent(Lookup masterLookup) {
return getPanel();
}
public void addPropertyChangeListener(PropertyChangeListener l) {
pcs.addPropertyChangeListener(l);
}
public void removePropertyChangeListener(PropertyChangeListener l) {
pcs.removePropertyChangeListener(l);
}
private TestConfPanel getPanel() {
if (panel == null) {
panel = new TestConfPanel(this);
}
return panel;
}
void changed() {
if (!changed) {
changed = true;
pcs.firePropertyChange(OptionsPanelController.PROP_CHANGED, false, true);
}
pcs.firePropertyChange(OptionsPanelController.PROP_VALID, null, null);
}
}
但是,当我在项目中添加此依赖项时,当我打开Tools > Options > Miscellaneous
时出现错误:
java.lang.AssertionError: Display name not defined: OptionsDialog/Advanced/com-mycompany-CoolOptions-CoolOptionsPanelController
我很震惊。声明的功能无法立即使用。有人碰到这个吗?我怎样才能解决这个问题?我需要设置功能。</ p>