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

输入主机和端口号后,用户可以按Test connection按钮检查这些MySQL设置是否正确。
主机的变量称为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变量是否为空。
但是它不起作用,成功标签永远不会显示。
怎么能只在连接检查成功时才显示?
发布于 2019-06-10 18:23:25
标签表单组件的可见性脚本仅在屏幕显示时进行评估,因此它不会在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();https://stackoverflow.com/questions/56517097
复制相似问题