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 を更新するために呼び出される関数です

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 に答える