Install4j 在长时间验证期间禁用/灰显屏幕或组件

Install4j 在长时间验证期间禁用/灰显屏幕或组件,install4j,Install4j,我有一个需要验证逻辑的屏幕,该逻辑可能会长期运行(例如,在速度较慢的机器上,可能长达10秒)。在验证过程中,install4j禁用输入,这很好。但是,屏幕不会显示被禁用的外观/L&F。例如,标签和输入字段不会灰显。我希望在验证期间屏幕或控件看起来是禁用的 我浏览了一些install4j API文档,希望找到类似screen.setEnabled(布尔值)的内容,但没有找到与此相关的任何内容 我还尝试在验证脚本中使用以下代码来执行此任务,但它似乎不起作用。也就是说,在长时间运行的验证期间,所有屏幕

我有一个需要验证逻辑的屏幕,该逻辑可能会长期运行(例如,在速度较慢的机器上,可能长达10秒)。在验证过程中,install4j禁用输入,这很好。但是,屏幕不会显示被禁用的外观/L&F。例如,标签和输入字段不会灰显。我希望在验证期间屏幕或控件看起来是禁用的

我浏览了一些install4j API文档,希望找到类似screen.setEnabled(布尔值)的内容,但没有找到与此相关的任何内容

我还尝试在验证脚本中使用以下代码来执行此任务,但它似乎不起作用。也就是说,在长时间运行的验证期间,所有屏幕控件的L&F仍处于启用状态:

for( FormComponent fc : formEnvironment.getFormComponents() )
{
    fc.setEnabled( false );
}

有什么建议吗?

验证表达式是在事件调度线程上执行的,因此您无法访问任何字段只是因为EDT不可用

对于长时间运行的验证,将“运行脚本”操作添加到屏幕,并将“故障策略”属性设置为“返回到父屏幕”。表单组件将通过适当的视觉反馈自动禁用。如果验证失败,则从脚本返回null,屏幕将再次显示

您还可以在验证期间显示进度:在表单屏幕上,添加一个“进度显示”表单组件,并选择“最初隐藏”属性。然后,在执行验证的“运行脚本”操作之前添加“设置进度条”操作。您还可以通过编程方式控制进度,如下所示:

context.getProgressInterface().setIndeterminateProgress(true);

Ingo一如既往地感谢您的帮助!这个问题的另一部分,我忘了问,是如何显示进度,比如沙漏光标。但你早就料到了。再次感谢你。我认为这个解决方案会很有效。