如何在install4j的命令行中清除文件选择器组件的输入?

How to clear the input of file chooser component on command line in install4j?

文件选择器组件始终保留命令行上的先前结果,就像

example file:
[/bin/example/file.txt]

如果我输入“space”或“Enter”键,将选择先前的值“/bin/exampel/file.txt”。如果我输入另一个路径,“example file”的值会改变,但是如何在不改变我的代码的情况下清空“example file”的值?这在 Windows 中很容易,但我在 Linux 中找不到任何有用的东西。

如果需要更改我的代码,我能想到的就是当用户输入特定字符串如“[]”时,我调用

context.setVariable("file chooser variable", null);

手动清空输入,好像不太合理

有没有更好的清除输入的方法?

在控制台模式下,空字符串或空白字符串表示接受默认值,无法将其解释为缺少输入。

您可以使用“控制台处理程序”表单组件自行提出问题,如下所示:

console.println("Current directory: " + context.getVariable("fileVariableName"));
if (console.askYesNo("Enter a different directory?")) {
    String newDirectory = console.askString("New directory", "");
    if (newDirectory.trim().isEmpty()) {
        context.setVariable("fileVariableName", null);
    } else {
        context.setVariable("fileVariableName", new File(newDirectory));
    }
}

return true;

然后将文件选择器组件的“可见性脚本”属性设置为!context.isConsole(),这样它就不会在控制台模式下显示。