gpt4 book ai didi

java - 如何在不关闭整个程序的情况下从 JTextFields 中清除变量?

转载 作者:行者123 更新时间:2023-11-29 08:13:56 26 4
gpt4 key购买 nike

我创建了一个文本文件,用于存储从文本字段中获取的一些变量。但是为了向这个文本文件提交新变量,我需要关闭我的程序并重新打开它。 dispose(); 命令关闭 JFrame 将我带到我的主菜单,但再次打开菜单并提交不同的值时,上一次的值已重新提交。有没有简单的方法来修改它?

这是我写入 .txt 的代码:

public class writeto {

static String data = AddProperty.inputdata;
BufferedWriter out;

public writeto(){
try{
out = new BufferedWriter(new FileWriter("writeto.txt", true));

out.write(data);

out.newLine();

out.close();

}catch(IOException e){

System.out.println("you have an error" + e);
}
}
}

以及在我的 addproperty 类中调用该方法的位置

        submitproperty.addActionListener(new ActionListener()
{

public void actionPerformed(ActionEvent e)
{
housenumber1 = houseNumber.getText();
streetname1 = streetName.getText();
town1 = town.getText();
postcode1 = postcode.getText();
beds1 = beds.getText();
price1 = price.getText();
type1 = type.getText();

inputdata = housenumber1 + " " + streetname1 + " " + town1 + " " +

postcode1 +" " + beds1 + " " + price1 + " " + type1;

writeto write = new writeto();
dispose();
}
});
}

最佳答案

在您的菜单中,您应该始终使用 小部件(如文本字段)创建一个 JFrame。 文本字段没有内容,如果您再次显示文本字段,它仍会显示之前的内容。


补充说明:

  • 请使用标准命名约定 - 不仅是在向他人展示代码时。在您的情况下:类名应以大写字母开头,首选驼峰式表示法 (writeto -> WriteTo)
  • writeto 类滥用构造函数。构造函数中的代码不会创建 writeto 对象,而是将一些字符串转储到文件中。将此类代码放入方法中,而不是构造函数中。
  • 如果发生异常,BufferedWriter 不会关闭。看看 stackoverflow,很多问题/答案都显示了正确的 io-closeing 模式
  • 处理 jframe 是有风险的 - 代码在按下按钮后执行(正确?),在框架上显示的按钮上的方法内(正确?)。在这种情况下,按钮可能会在按钮对象上的方法仍在执行时被释放。如果您只想隐藏 JFrame(如“关闭对话框”),请尝试 setVisible(false)<

关于java - 如何在不关闭整个程序的情况下从 JTextFields 中清除变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6018094/

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