java - 有效方法不适用于 Netbeans RCP 平台上的自定义选项面板

标签 java netbeans-platform

我有以下问题:

我正在实现一个基于 Netbeans 平台的 RCP 应用程序。我向应用程序添加了一个新的自定义辅助选项面板。

设计面板并设置正确的方法后(我实现了当字段更改时从 Controller 调用更改的方法的部分),我修改了选项面板( View )中的有效方法以进行正确的验证所有领域。据我了解, Controller 调用它来在保存之前验证表单。唯一的问题是,从我所看到的情况来看,这个方法永远不会被调用,因此在其中完成的任何验证都不会被激活。

有人可以告诉我我做错了什么吗?谢谢!

boolean valid() {
    if (addressTextField.getText().isEmpty()) {
        return false;
    }
    if (portTextField.getText().isEmpty()) {
        return false;
    }
    if (userTextField.getText().isEmpty()) {
        return false;
    }
    if (passwordPasswordField.getPassword().length == 0) {
        return false;
    }
    if (databaseNameTextField.getText().isEmpty()) {
        return false;
    }

    //TODO: change this back to the connection string builder after testing
    String databaseURL = "jdbc:mysql://" + addressTextField.getText().trim() + ":"  + portTextField.getText().trim() + "/" + databaseNameTextField.getText().trim() +
            "?user=" + userTextField.getText().trim() + "&password=" + StringUtilities.charToString(passwordPasswordField.getPassword());
    if(!SQLDatabaseConnectionManagerImpl.testPing(databaseURL)) {
        messageLabel.setText("");
        messageLabel.setForeground(Color.red);
        messageLabel.setText(NbBundle.getBundle(ImportDataOptionsPanel.class).getString("ImportDataOptionsPanel.connectionErrorMessage.text"));
        debug("Error on database connection with the following connection string: " + databaseURL, ImportDataOptionsPanel.IMPORTANT);
        return false;
    }

    return true;
}

最佳答案

提示在此代码注释中

// TODO listen to changes in form fields and call controller.changed()

您需要告诉 Controller 何时发生更改以及何时验证数据。 因此,在一个简单的场景中,您可以监听按键事件,然后调用controller.changed()

private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {
    controller.changed();
}

关于java - 有效方法不适用于 Netbeans RCP 平台上的自定义选项面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6640630/

相关文章:

java - Installer 类的 returned() 方法没有被调用

java - 在使用之间保留我的状态

java - 为什么我的 Java 程序中会出现 InputMismatchException?

java - IBM JMS MQ 在 MQM header 中添加用户 ID

java - 计算人口密度: a beginners guide

java - 在名称为 'dispatcher' 的 DispatcherServlet 中找不到具有 URI [/MVCCrud/viewemp] 的 HTTP 请求的映射

java - 如何将图像放置在选项卡中,使其看起来像图标

java - Activity 编辑器中的 NetBeans 插件开发用户事件

java - Netbeans 平台应用程序中的 OSGi 配置管理服务

java - 提取实体保存类