gpt4 book ai didi

java - 如何使用切换按钮构建字符串列表

转载 作者:行者123 更新时间:2023-12-02 03:51:17 25 4
gpt4 key购买 nike

我正在尝试根据 GUI 上选择的内容为运行程序的 ProcessBuilder 创建命令列表。

我有 10 个按钮,我需要每个按钮返回并向列表添加一个字符串切换时并在未切换时将其删除。

我试图在 .isSelected 时向列表添加值,并在禁用时将其删除。但我认为这不是一个好方法。

有人有什么想法吗?

编辑:将所有按钮添加到 ToggleGroup 并使用 Switch 是有效的解决方案吗?

最佳答案

一个简单的实现是:

public class MyApplication extends Application {

private final List<String> commands = new ArrayList<>();

@Override
public void start(Stage primaryStage) {
VBox commandToggles = new VBox();
commandToggles.getChildren().add(createCommandToggle("Command 1", "exec1"));
commandToggles.getChildren().add(createCommandToggle("Command 2", "exec2"));
commandToggles.getChildren().add(createCommandToggle("Command 3", "exec3"));
// ...

Button runButton = new Button("Run");
runButton.setOnAction(e -> {
ProcessBuilder pb = new ProcessBuilder(commands);
// ...
});

// ...

}

private ToggleButton createCommandToggle(String text, String executable) {
ToggleButton button = new ToggleButton(text);
button.selectedProperty().addListener((obs, wasSelected, isSelected) -> {
if (isSelected) {
commands.add(executable);
} else {
commands.remove(executable);
}
}
return button ;
}
}

正如 @Valette_Renoux 所建议的,您可以通过将按钮的文本和可执行命令封装在 enum 中来优化此操作,并将列表替换为 EnumSet。这使得构建切换按钮的重复性减少了一些(尽管您可能需要在 runButton 处理程序中进行更多工作来提取命令)。

关于java - 如何使用切换按钮构建字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35851061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com