2014-09-23 79 views
2

我正在开发一个将程序包部署到远程计算机的安装程序。为此,我必须要求用户输入远程机器的用户名。根据来自其他文本字段的输入填充文本字段的初始值

我还想让用户指定文件被复制的路径。为此,我在同一个可配置表单页面上有另一个文本字段。

有什么办法让目的地字段自动完成基于上面的用户名字段的输入?

例如,假设用户在用户名字段中输入user1,我希望目标字段填充到/home/user1/

回答

2

设置用户名文本字段的“输入验证表达”属性来

if (!text.equals(context.getVariable("lastValue"))) { 
    ((JTextField)formEnvironment.getFormComponentById("2060") 
     .getConfigurationObject()).setText(text); 
    context.setVariable("lastValue", text); 
} 
return true; 

,其中“123”是由目的地文本字段的ID替换。字段使用焦点后,目标字段会更新。

安装程序变量“lastValue”保存用户名文本字段的前一个值,以便只在值更改时才更改目标文本字段。

或者:要在键入时更新文本字段,请将用户名文本字段的“Key listener script”属性设置为上述脚本减去return语句。

此属性将从install4j 6.0.4开始可用。

+0

做了一些更多的测试,看起来像这样的副作用,即使用户更改了目标字段,分配给该字段的变量的值仍与用户通过输入验证表达式设置的值相同名称字段。 是否有任何解决方法,使我可以使用输入验证的默认设置,但仍允许用户手动修改目标字段与他想要的任何路径? – 2014-09-24 08:16:22

+0

你是对的,当用户点击“下一步”时也会执行输入验证。我已经用解决方案更新了我的答案。 – 2014-09-24 13:50:11

+0

@IngoKegel我试过解决方案,它的工作原理。但是,我收到不想要的行为。 **更新**字段的值似乎是后面的一个字符。我知道这是KeyDown事件的默认行为,但我希望无论输入什么值都会反映在它下面的其他文本框中。你有什么解决办法?我知道我正在做两个验证表达式,一个用于密钥验证,另一个用于输入验证。最终用户可能会感到困惑。 – user0000001 2015-05-19 18:19:09

相关问题