2013-02-26 27 views
0

我想解決以下問題: 我有一個圖形界面類JTextArea。而且我還在寫我自己的課程,我們稱之爲Foo如何創建s.th.像在java中的函數輸出流?

其實,我在GUI類中有所有的計算。他們只是使用s.th.像myText.append(...)寫一些輸出到GUI中。

現在我想把所有的計算都放到我的新類Foo中。 問題:如何創建一個方法,它將GUI中的JTextArea作爲輸入,然後像以前一樣使用它來向其中寫入一些輸出文本。我不想將此作爲方法的返回值!

這可能嗎?

+4

問題尚不清楚。請顯示一些代碼。 – mtk 2013-02-26 08:20:50

+0

這是事件相關的,如果我的問題是正確的,你希望一旦你點擊/按回車,當前圖片將被保存(或文本) - 所以你需要有人來聽輸入/點擊。 – Infested 2013-02-26 08:22:54

+1

@mtk:問題並不清楚。英語不是他的母語。 – 2013-02-26 08:28:59

回答

0

事情是這樣的......

public class Foo { 
    public void writeInfoToTextArea(JTextArea textArea /*, other parms here */) { 
     textArea.setText(...); 
    } 
} 
+0

這對我有用:) – gurehbgui 2013-02-26 08:30:31

1

你需要的是一個映射器或適配器,即東西,接受來自一個接口中的方法,並將它們轉換成另一種接口的方法調用。在你的情況下,我建議使用Writer而不是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() { } 
} 

如果你真的需要一個OutputStream,看看OutputStreamWriter以字節和Unicode字符之間的轉換。

相關問題