2014-09-23 124 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

相關問題