【问题标题】:ValidationAPI java swingValidationAPI java swing
【发布时间】:2015-02-01 22:16:50
【问题描述】:

我正在开发项目 Swing 应用程序,我想验证我的 GUI 中的 jTextFields。 我找到了我添加到我的项目中的 ValidationAPI.jar,但它的文档真的很糟糕。 我在 group.validateAll() 中有一个错误;打电话,我不知道如何解决它。 有人使用这个 API 吗?并且知道如何解决它。

final SwingValidationGroup group =  SwingValidationGroup.create();
group.add(generationsTextField, StringValidators.REQUIRE_NON_EMPTY_STRING,
StringValidators.NO_WHITESPACE,
StringValidators.REQUIRE_VALID_INTEGER);


generationsTextField.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {
    checkValidation();
}
public void removeUpdate(DocumentEvent e) {
    checkValidation();
}
public void changedUpdate(DocumentEvent e) {
    checkValidation();
}
private void checkValidation() {
    Problem validateAll = group.validateAll();
    if (validateAll.isFatal()) {
        startAlgorithm.setEnabled(false);
        isValid = !validateAll.isFatal();
    } else {
        startAlgorithm.setEnabled(true);
        isValid = !validateAll.isFatal();
    }
 }
});

当我打电话给validateAll();

它在下面给我一个错误--

线程“AWT-EventQueue-0”java.lang.NoClassDefFoundError 中的异常: org/openide/util/查找 org.netbeans.validation.api.ui.swing.SwingComponentDecorationFactory.getDefault(‌​SwingComponentDecorationFactory.java:154) 在 org.netbeans.validation.api.ui.swing.SwingValidationGroup.(S​​wingValidation‌​Group.java:82) 在 org.netbeans.validation.api.ui.swing.SwingValidationGroup.create(SwingValidation‌​Group.java:87) 在 com.mendelu.ga_scp.gui.GUI.(GUI.java:43)

.

【问题讨论】:

  • 能否请您发布整个错误?找不到符号...?
  • 线程“AWT-EventQueue-0”中的异常 java.lang.NoClassDefFoundError: org/openide/util/Lookup at org.netbeans.validation.api.ui.swing.SwingComponentDecorationFactory.getDefault(SwingComponentDecorationFactory. java:154) 在 org.netbeans.validation.api.ui.swing.SwingValidationGroup.(SwingValidationGroup.java:82) 在 org.netbeans.validation.api.ui.swing.SwingValidationGroup.create(SwingValidationGroup.java: 87) 在 com.mendelu.ga_scp.gui.GUI.(GUI.java:43)

标签: java swing validation


【解决方案1】:

我猜你在 Netbeans 中创建了一个普通的 Java 应用程序项目。对于验证,您使用了 ValidationAPI.jar,没有任何进一步的 api。 ValidationAPI.jar 是Netbeans Application Framework (NAF) 的一部分,这是一组用于编写标准“桌面”应用程序的非常复杂的库。 ValidationAPI 依赖于 NAF 中的其他包(jar)。而且您至少会错过 org.openide.util.Lookup 类。

您可以手动解决依赖关系(将所有 jars 或使用 maven 放入项目中)或从头开始创建 NAF 程序。

另一种选择是使用与框架无关的验证库,例如 OVal。

【讨论】:

    猜你喜欢
    • 2012-07-30
    • 2023-04-08
    • 2017-09-25
    • 2013-04-13
    • 2013-03-28
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多