0

私は次の問題を解決したいと考えています: GUI クラスにいくつかのJTextArea. そして、私は自分のクラスも書いています。それを呼び出しましょうFoo

実際、すべての計算は GUI クラスにあります。彼らはただs.thを使用します。myText.append(...)出力をGUIに書きたい。

ここで、すべての計算を新しいクラスに入れたいと思いますFoo問題JTextArea: GUI から を入力として取得し、以前のようにそれを使用して出力テキストを書き込むメソッドを作成するにはどうすればよいですか。これをメソッドの戻り値にしたくない!

これは可能ですか?

4

2 に答える 2

1

必要なのはマッパーまたはアダプターです。つまり、あるインターフェースからメソッドを受け取り、それらを別のインターフェースのメソッド呼び出しに変換するものです。あなたの場合、すべてのエンコーディングの問題を回避するためにWriteroverを使用することをお勧めします。OutputStreamこのコードを試してください:

public Foo extends Writer {
    private JTextArea textArea;

    public Foo( JTextArea textArea ) {
        this.textArea = textArea;
    }

    public void write(char cbuf[], int off, int len) throws IOException {
        String text = new String( cbuff, off, len );
        textArea.append( text );
    }

    public void close() { }
    public void flush() { }
}

が本当に必要な場合は、バイトと Unicode 文字間の変換をOutputStream参照してください。OutputStreamWriter

于 2013-02-26T08:27:45.283 に答える
0

このようなもの...

public class Foo {
    public void writeInfoToTextArea(JTextArea textArea /*, other parms here */) {
        textArea.setText(...);
    }
}
于 2013-02-26T08:25:19.453 に答える