如何创建s.th.像在java中的函数输出流?
问题描述:
我想解决以下问题: 我有一个图形界面类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(...);
}
}
+0
这对我有用:) – 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