在 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 数组”的值并将其存储在 Array Integer 中?