如何在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()
,这样它就不会在控制台模式下显示。
文件选择器组件始终保留命令行上的先前结果,就像
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()
,这样它就不会在控制台模式下显示。