gpt4 book ai didi

java - JTextField getText()不起作用

转载 作者:行者123 更新时间:2023-12-04 05:30:20 25 4
gpt4 key购买 nike

我一直在寻找,我找不到任何人可以解决这个问题。我正在制作一个游戏,在那个游戏中,我有可编辑的控件。控件窗口是一个单独的 JFrame,当我单击确认按钮时,它应该将 JTextFields(保存控件)中的项目写入文件。但这不起作用,所以我让它打印包含值的arraylist。这是代码:

public void writeControls() {
ArrayList<String> al = new ArrayList<String>();

al.add(up.getText());
al.add(down.getText());
al.add(left.getText());
al.add(right.getText());
al.add(jump.getText());
al.add(duck.getText());
al.add(attack.getText());

for (int i = 0; i < al.size(); i++) {
System.out.println(al.get(i));
}
System.exit(0);
}

问题是这样的:如果我更改最终的 JTextField attack或其他任何一个,然后单击提交,系统将打印出默认控件。例如,如果 JTextField 的值为 w、a、s、d、r、t、q,并且 i 将值 q 更改为 i,它会打印出 q。我究竟做错了什么?提前致谢!

编辑 1:

文本字段的代码和 FILES....只是存储在不同类中的字符串。类(class) setText()位于文本字段下方。
up = new JTextField(setText(FILES.controlsFileFinalDir, 1));
down = new JTextField(setText(FILES.controlsFileFinalDir, 2));
left = new JTextField(setText(FILES.controlsFileFinalDir, 3));
right = new JTextField(setText(FILES.controlsFileFinalDir, 4));
jump = new JTextField(setText(FILES.controlsFileFinalDir, 5));
duck = new JTextField(setText(FILES.controlsFileFinalDir, 6));
attack = new JTextField(setText(FILES.controlsFileFinalDir, 7));

public String setText(String fileDir, int lineNum) {
String txt = "";
txt = io.readSpecificLine(fileDir, lineNum);
txt = switchCase(txt);

return txt;
}
switchcase()只是获取您在文本文件中写入的内容,这些内容从中获取值,并翻译它们。所以如果值为0,则变成Space等 io.readSpecificLine();只是从文件中获取文本行。这有帮助吗?

编辑 2:
我只是在附近用餐,发现如果我使用 setText(""); 设置 JTextField 文本然后使用 getText();有用。所以问题是当我手动更改它并使用 getText();它不会工作。为什么?

最佳答案

要将文本更新为当前存在的 JTextField,我会将 JTextField 建立为类变量,并创建一个 setter/getter 方法来调整它(我假设您正在这样做)。

根据你的方法,你会使用类似的东西:

up.setText(setText(FILES.controlsFileFinalDir, 7));

编辑:**第一个 setText 是 JTextField.setText,第二个 setText 是您发布的公共(public)方法。我假设您的第二个 getText() 不起作用,因为您可能没有正确设置文本。

如果没有看到更多代码,我真的无法给出更好的猜测。

关于java - JTextField getText()不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12714418/

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