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

发布于 2025-01-10 02:16:53 字数 414 浏览 0 评论 0原文

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

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

如果我输入“空格”或“Enter”键,将选择先前的值“/bin/exampel/file.txt”。如果我输入另一个路径,“示例文件”的值将被更改,但是如何在不更改我的代码的情况下清空“示例文件”的值?这在 Windows 中很简单,但我找不到任何可以在 Linux 中运行的东西。

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

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

手动清除输入,这看起来不太合理。

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

The file chooser component always preserve the previous results on command line, just like

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

If I enter a "space" or "Enter" key, the previous value "/bin/exampel/file.txt" will be chose. If I input another path, the value of "example file" will be changed, but how to empty the value of "example file" without changing my code? It's an easy thing in Windows, but I couldn't find anything that works in Linux.

If it's necessary to change my code, all I can think of is when the user input a specific string such as "[]", I call

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

to clear the input manually, which doesn't seem very reasonable.

Is there any better method to clear the input?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黑色毁心梦 2025-01-17 02:16:53

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

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

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() 所以它是在控制台模式下不显示。

In console mode, the empty string or a blank string signifies the acceptance of the default value, there is no way to interpret it as missing input.

You could use a "Console handler" form component to ask the questions yourself with something like this:

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;

Then set the "Visibility script" property of the file chooser component to !context.isConsole() so it is not displayed in console mode.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文