0

我有一个名为 A 的类和一个名为 T 的类。当 A 单击一个按钮时,我希望它更新 T 的内容。我在执行此操作时遇到了问题……谢谢任何建议。

A类:

    FileWriter fstream = new FileWriter("open.txt", true);
    BufferedWriter out = new BufferedWriter(fstream);
    out.write("\n" +number1);
    jLabel1.setText(number1);
    out.close();
    T t = new T();
    t.refresh();

refresh 是我要调用来更新类 T 的函数

电话:

public void refresh() {
            File file = new File("open.txt");
    try {

        Scanner sc = new Scanner(file);

        if (sc.hasNext()) {
            jTextField2.setText(sc.next());

        } else {
            jTextField2.setText("Nothing to see here");
        }
    } catch (FileNotFoundException e) {
    e.printStackTrace();
}

这就是我希望它调用的函数。它只是不更新​​文本。我认为这与我如何使用文本文件有关。任何想法谢谢。

4

3 回答 3

1

您正在附加到您的文件:

FileWriter fstream = new FileWriter("open.txt", true);

但读取第一个值:

Scanner sc = new Scanner(file);
if (sc.hasNext()) {
   jTextField2.setText(sc.next());

这永远不会改变。我怀疑这就是你没有看到变化的原因。

您需要写入该文件吗?你不能refresh()用刚刚写入文件的数据调用你的方法(或重载的变体)吗?

于 2012-11-01T11:06:06.170 回答
0

试试看

TSO t = new TSO();
t.refresh();

以上

out.write("\n" +number1);
jLabel1.setText(number1);
out.close();

它可能有效但尚未确认...

于 2012-11-01T11:04:27.780 回答
0

你为什么不把它作为参数传递

t.refresh(number1);

进而

public void refresh(String number1) {
 if(number1!=null){        
 jTextField2.setText(sc.next());
        } else {
            jTextField2.setText("Nothing to see here");
        }
    } 

不是更好吗

于 2012-11-01T13:11:20.190 回答