在 JTextField 中保存值

Posted

技术标签:

【中文标题】在 JTextField 中保存值【英文标题】:Save Value in JTextField 【发布时间】:2014-11-12 09:32:37 【问题描述】:

我创建了一个设置菜单。通过打开菜单,将执行方法加载。所以菜单知道选择了哪个复选框和单选按钮:

static void load() 
    testAllPagesHaveSameRotation.setSelected(PREFS.getBoolean("check1", false));
    testAllPagesHaveSameSize.setSelected(PREFS.getBoolean("check2", false));
    testAllFontsAreEmbedded.setSelected(PREFS.getBoolean("check3", false));
    testContent.setSelected(PREFS.getBoolean("check4", false));

    radioButtonCm.setSelected(PREFS.getBoolean("radio1", false));
    radioButtonInch.setSelected(PREFS.getBoolean("radio2", false));

通过单击保存按钮,方法存储将被执行。

static void store() 
            PREFS.putBoolean("check1", testAllPagesHaveSameRotation.isSelected());
            PREFS.putBoolean("check2", testAllPagesHaveSameSize.isSelected());
            PREFS.putBoolean("check3", testAllFontsAreEmbedded.isSelected());
            PREFS.putBoolean("check4", testContent.isSelected());

            PREFS.putBoolean("radio1", radioButtonCm.isSelected());
            PREFS.putBoolean("radio2", radioButtonInch.isSelected());

但我在设置菜单中也有一个 JTextfield 和输入的值作为 String。我如何在这些方法中实现它?

..
JTextField toleranceField;
String tolerance;
..

我已经试过了:

        PREFS.put("check5", toleranceField.getText());

但它不起作用......

【问题讨论】:

您的解决方案应该有效。您是否收到错误消息是该值未存储?在加载方法中填充文本字段时你是什么代码? 嗯,问题是我使用存储方法在注册表中写入值“check1...”等等。每次我完全关闭设置菜单并再次运行时,电脑都知道注册表中的内容,只需读取值并将它们再次放入设置菜单中。但是我如何使用我输入的字符串容差来做到这一点......? :( 为了尽快获得更好的帮助,请发布MCVE(最小完整可验证示例)。 【参考方案1】:
static void store() 

            ......

            PREFS.put("check6", toleranceField.getText());



static void load() 

    ....

    toleranceField.setText(PREFS.get("check6", "default string value"));

如果后备存储不可访问或为“check6”指定了无效值,则将返回默认的“默认字符串值”并将其设置为 JTextField 的文本。如果需要,默认值也可以为 NULL。试试这个并检查:

    如果返回默认值 -> 后备存储不可访问或未设置值 抛出异常: IllegalStateException - 如果此节点(或祖先)已使用 removeNode() 方法或 NullPointerException - 如果值为 null

【讨论】:

以上是关于在 JTextField 中保存值的主要内容,如果未能解决你的问题,请参考以下文章

在 JTextField 中保存值

如何从 JTextField 获取字符串并将其保存在变量中的更新?

区分 JTextField 中的键入和粘贴

如何获取“JTextField 数组”的值并将其存储在 Array Integer 中?

如何将 JTextField 中的数据保存到 mysql 数据库中?

检查 JtextField 是不是不等于保存的数组