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

时间:2019-06-09 17:58:25

标签: java jdbc install4j

我正在尝试在Install4J 6.1.6中构建以下表单: enter image description here

输入主机和端口号后,用户可以通过按下Test connection按钮来检查这些MySQL设置是否正确。

主机的变量称为mysqlHost 并且Port的变量为mysqlPort

最初,我遇到一个问题,即用户输入的输入仅在按下Next >按钮时才保存到变量中,但是我可以通过添加来解决此问题。 两个输入字段分别从formEnvironment.saveFormComponents()Key listener script

我为Test Connection按钮设置了以下“检查JDBC连接”操作: enter image description here

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

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

String errorMessage = (String)context.getVariable("mysqlTestError");
return errorMessage.length() == 0;

因此,我正在尝试检查mysqlTestError变量是否为空。

但是它不起作用,从不显示成功标签。

仅在连接检查成功后如何显示?

1 个答案:

答案 0 :(得分:1)

仅在显示屏幕时评估标签表单组件的可见性脚本,因此在进行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();