Java Install4J:JDBC连接检查成功后向用户提供反馈

Java Install4J:JDBC连接检查成功后向用户提供反馈,java,jdbc,install4j,Java,Jdbc,Install4j,我试图在Install4J 6.1.6中构建以下表单: 在输入主机和端口号后,用户可以通过按下测试连接按钮来检查这些MySQL设置是否正确 主机的变量称为mysqlHost 端口的变量是mysqlPort 我最初遇到一个问题,用户输入的输入只有在按下Next>按钮时才会保存到变量中,但我可以通过添加 formEnvironment.saveFormComponents()到两个输入字段的键侦听器脚本 我为测试连接按钮设置了以下“检查JDBC连接”操作: 它工作正常,当主机和端口设置不正确时,

我试图在Install4J 6.1.6中构建以下表单:

在输入主机和端口号后,用户可以通过按下
测试连接
按钮来检查这些MySQL设置是否正确

主机的变量称为
mysqlHost
端口的变量是
mysqlPort

我最初遇到一个问题,用户输入的输入只有在按下
Next>
按钮时才会保存到变量中,但我可以通过添加
formEnvironment.saveFormComponents()
到两个输入字段的
键侦听器脚本

我为
测试连接
按钮设置了以下“检查JDBC连接”操作:

它工作正常,当主机和端口设置不正确时,用户将看到弹出的错误消息

但是,当JDBC连接工作时,我无法显示成功消息或标签。 我尝试使用以下可见性脚本添加绿色成功标签(如第一张图所示):

String errorMessage = (String)context.getVariable("mysqlTestError");
return errorMessage.length() == 0;
因此,我试图检查
mysqlTestError
变量是否为空

但它不起作用,成功的标签永远不会显示出来


如何仅在连接检查成功时才显示它?

标签表单组件的可见性脚本仅在显示屏幕时进行评估,因此它不会在JDBC连接检查后更新可见性

您可以通过向按钮表单组件的“操作列表”添加“运行脚本”操作,以编程方式更新标签:

String errorMessage = (String)context.getVariable("mysqlTestError");
FormComponent formComponent = formEnvironment.getFormComponentById("ID of label");
formComponent.setVisible(!errorMessage.isEmpty());
((JLabel)formComponent.getConfigurationObject()).setText(errorMessage);

return true;
在install4j 6中,“formEnvironment”参数在操作列表中不可用,您必须通过

FormEnvironment formEnvironment = ((FormPanelContainer)context.getScreenById("ID of screen")).getFormEnvironment();