gpt4 book ai didi

java - 让复选框记住它的状态的最佳方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:04:31 25 4
gpt4 key购买 nike

我有一个使用许多复选框的 javafx 应用程序。选中复选框后,主窗口中将出现一个按钮。复选框设置为“false”会使按钮消失。很容易。

问题是复选框不记得它已被选中,并且应用程序始终以选中的复选框开始,如 fxml 文件中所定义:

<CheckBox fx:id="googleHider" onAction="#hideGoogle" selected="true" text="Google">

因为我在谷歌上找不到任何满意的东西,我想出了一个自己开发的解决方案,设置一个函数,直接在 fxml 文档中将复选框的选定状态设置为“true”或“false”,这很有效完美。

我只是想知道这是否是一种好的做法,简单有效,或者是否有人找到或可以想象出更优雅或简约的解决方案。 (我以前的编程经验更多的是Python,不知道有没有更“Java”的方式...?)

boolean isSelected = googleHider.isSelected();


if (isSelected == false) {

System.out.println("not selected");
Path path = Paths.get("src/javafxapplication2/PopupFXML.fxml");
Charset charset = StandardCharsets.UTF_8;
String content = new String(Files.readAllBytes(path));
//following line changes the initial state of the checkbox from "true" to "false"
content = content.replaceAll("\"#hideGoogle\" selected=\"true\"", "\"#hideGoogle\" selected=\"false\"");
Files.write(path, content.getBytes(charset));

}
else {
System.out.println("selected");
Path path = Paths.get("src/javafxapplication2/PopupFXML.fxml");
Charset charset = StandardCharsets.UTF_8;
String content = new String(Files.readAllBytes(path));
// next line changes the state back from "false" to "true"
content = content.replaceAll("\"#hideGoogle\" selected=\"false\"", "\"#hideGoogle\" selected=\"true\"");
Files.write(path, content.getBytes(charset));

}

最佳答案

我肯定会使用设置文件。这样的设置文件不应该位于您的应用程序中,因为您不能总是在应用程序执行时修改它。合适的位置是 AppData 文件夹(在 Windows 上)或用户目录(在 Linux 和 Mac 上)或保存应用程序的文件夹。

我写了一个创建*.properties 文件的小库,并将它们保存在AppData 文件夹中(如果不是在Windows 上,则保存在用户目录中),您也可以使用它:Common

关于java - 让复选框记住它的状态的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41321817/

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