输入主机和端口号后,用户可以通过按下Test connection
按钮来检查这些MySQL设置是否正确。
主机的变量称为mysqlHost
并且Port的变量为mysqlPort
最初,我遇到一个问题,即用户输入的输入仅在按下Next >
按钮时才保存到变量中,但是我可以通过添加来解决此问题。
两个输入字段分别从formEnvironment.saveFormComponents()
到Key listener script
。
我为Test Connection
按钮设置了以下“检查JDBC连接”操作:
它工作正常,当主机和端口设置不正确时,用户将看到弹出窗口并显示错误消息。
但是,当JDBC连接工作时,我无法显示成功消息或标签。 我尝试使用以下可见性脚本添加绿色的成功标签(如第一张图片所示):
String errorMessage = (String)context.getVariable("mysqlTestError");
return errorMessage.length() == 0;
因此,我正在尝试检查mysqlTestError
变量是否为空。
但是它不起作用,从不显示成功标签。
仅在连接检查成功后如何显示?
答案 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();