如何在我的Java应用程序关闭后保存自定义状态?

时间:2015-08-27 11:26:37

标签: java swing

我创建了一个名为Test.jar的java应用程序 enter image description here

使用以下界面
enter image description here

任何时候我打开Test.jar时都会取消选中该复选框

我希望在用户检查复选框后创建此程序,它可以在我关闭后保存它

这是程序的代码

import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test extends JFrame{
    public Test(){
        JPanel p=new JPanel();
        JCheckBox chb=new JCheckBox("save it");
        p.add(chb);
        add(p);
        pack();
    }
    public static void main(String[] args) {
        Test f=new Test();
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

4 个答案:

答案 0 :(得分:1)

您必须在出口处将程序的状态保存在文件或其他持久存储(Windows注册表,数据库等)中,并在启动时加载此状态。

加载状态后,您必须手动将selected属性设置为加载值。

答案 1 :(得分:1)

使用序列化。在退出之前保持申请状态。

答案 2 :(得分:1)

您可以创建一个用于保存用户首选项的文件。例如,您可以使用属性文件并将当前设置保存在其中:

属性-文件含量:

saveBox=checked

要访问该属性文件,请使用Properties

// Read properties file.
Properties prop = new Properties();

try {
    prop.load(new FileInputStream("filename.properties"));
} catch (IOException e) {
}


// get the property value of your checkbox
String saveBoxValue= prop.getProperty("saveBox");

然后,您可以检查该值是否为checkedunchecked

要写入属性文件,请使用它:

// Write properties file.
try {
    props.setProperty("saveBox", "checked");
    prop.store(new FileOutputStream("filename.properties"), null);
} catch (IOException e) {
}

答案 3 :(得分:1)

有几个选项可以做到这一点。最佳实践是使用最流行的开源库之一:Apache Commons。 在这里,您可以找到所需的示例和所有文档。

https://commons.apache.org/proper/commons-configuration/userguide/howto_properties.html

使用此库,您可以使用app-preferences加载,保存和编辑配置文件。

希望我帮助你