Install4J:成功 JDBC 连接检查后向用户反馈
Install4J: give feedback to user after successful JDBC connection check
我正在尝试在 Install4J 6.1.6 中构建以下表单:
输入主机和端口号后,用户可以通过按Test connection
按钮检查这些MySQL 设置是否正确。
Host 的变量被称为 mysqlHost
端口的变量是 mysqlPort
我最初有一个问题,用户输入的内容只有在按下 Next >
按钮时才会保存到变量中,但我可以通过添加来解决这个问题
formEnvironment.saveFormComponents()
到两个输入字段的 Key listener script
。
我为 Test Connection
按钮设置了以下 "Check JDBC connection" 操作:
它工作正常,当主机和端口设置不正确时,用户会看到一个弹出错误消息。
但是,当 JDBC 连接正常时,我无法显示成功消息或标签。
我尝试使用以下可见性脚本添加绿色成功标签(如第一张图片所示):
String errorMessage = (String)context.getVariable("mysqlTestError");
return errorMessage.length() == 0;
所以我正在尝试检查 mysqlTestError
变量是否为空。
但它不起作用,从不显示成功标签。
怎么只有连接检查成功才显示?
标签表单组件的可见性脚本仅在屏幕显示时进行评估,因此在 JDBC 连接检查后不会更新可见性。
您可以通过向按钮表单组件的 "Action list" 添加 "Run script" 操作以编程方式更新标签:
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();
我正在尝试在 Install4J 6.1.6 中构建以下表单:
输入主机和端口号后,用户可以通过按Test connection
按钮检查这些MySQL 设置是否正确。
Host 的变量被称为 mysqlHost
端口的变量是 mysqlPort
我最初有一个问题,用户输入的内容只有在按下 Next >
按钮时才会保存到变量中,但我可以通过添加来解决这个问题
formEnvironment.saveFormComponents()
到两个输入字段的 Key listener script
。
我为 Test Connection
按钮设置了以下 "Check JDBC connection" 操作:
它工作正常,当主机和端口设置不正确时,用户会看到一个弹出错误消息。
但是,当 JDBC 连接正常时,我无法显示成功消息或标签。 我尝试使用以下可见性脚本添加绿色成功标签(如第一张图片所示):
String errorMessage = (String)context.getVariable("mysqlTestError");
return errorMessage.length() == 0;
所以我正在尝试检查 mysqlTestError
变量是否为空。
但它不起作用,从不显示成功标签。
怎么只有连接检查成功才显示?
标签表单组件的可见性脚本仅在屏幕显示时进行评估,因此在 JDBC 连接检查后不会更新可见性。
您可以通过向按钮表单组件的 "Action list" 添加 "Run script" 操作以编程方式更新标签:
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();