我想解決以下問題: 我有一個圖形界面類JTextArea
。而且我還在寫我自己的課程,我們稱之爲Foo
。如何創建s.th.像在java中的函數輸出流?
其實,我在GUI類中有所有的計算。他們只是使用s.th.像myText.append(...)
寫一些輸出到GUI中。
現在我想把所有的計算都放到我的新類Foo
中。 問題:如何創建一個方法,它將GUI中的JTextArea
作爲輸入,然後像以前一樣使用它來向其中寫入一些輸出文本。我不想將此作爲方法的返回值!
這可能嗎?
我想解決以下問題: 我有一個圖形界面類JTextArea
。而且我還在寫我自己的課程,我們稱之爲Foo
。如何創建s.th.像在java中的函數輸出流?
其實,我在GUI類中有所有的計算。他們只是使用s.th.像myText.append(...)
寫一些輸出到GUI中。
現在我想把所有的計算都放到我的新類Foo
中。 問題:如何創建一個方法,它將GUI中的JTextArea
作爲輸入,然後像以前一樣使用它來向其中寫入一些輸出文本。我不想將此作爲方法的返回值!
這可能嗎?
事情是這樣的......
public class Foo {
public void writeInfoToTextArea(JTextArea textArea /*, other parms here */) {
textArea.setText(...);
}
}
這對我有用:) – gurehbgui 2013-02-26 08:30:31
你需要的是一個映射器或適配器,即東西,接受來自一個接口中的方法,並將它們轉換成另一種接口的方法調用。在你的情況下,我建議使用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字符之間的轉換。
問題尚不清楚。請顯示一些代碼。 – mtk 2013-02-26 08:20:50
這是事件相關的,如果我的問題是正確的,你希望一旦你點擊/按回車,當前圖片將被保存(或文本) - 所以你需要有人來聽輸入/點擊。 – Infested 2013-02-26 08:22:54
@mtk:問題並不清楚。英語不是他的母語。 – 2013-02-26 08:28:59