我想解决以下问题:我有一个带有一些JTextArea
. 而且我也在写我自己的课,让我们称之为Foo
。
实际上,我所有的计算都在 GUI 类中。他们只是使用s.th。喜欢myText.append(...)
将一些输出写入GUI。
现在我想把所有的计算都放到我的新类Foo
中。问题:如何创建一个方法,该方法JTextArea
从 GUI 获取作为输入,然后像以前一样使用它向其中写入一些输出文本。我不想把它作为方法的返回值!
这可能吗?
我想解决以下问题:我有一个带有一些JTextArea
. 而且我也在写我自己的课,让我们称之为Foo
。
实际上,我所有的计算都在 GUI 类中。他们只是使用s.th。喜欢myText.append(...)
将一些输出写入GUI。
现在我想把所有的计算都放到我的新类Foo
中。问题:如何创建一个方法,该方法JTextArea
从 GUI 获取作为输入,然后像以前一样使用它向其中写入一些输出文本。我不想把它作为方法的返回值!
这可能吗?
您需要的是一个映射器或适配器,即接受来自一个接口的方法并将它们转换为另一个接口的方法调用的东西。在您的情况下,我建议使用Writer
overOutputStream
来避免所有编码问题。试试这个代码:
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 字符之间进行转换。
像这样的东西...
public class Foo {
public void writeInfoToTextArea(JTextArea textArea /*, other parms here */) {
textArea.setText(...);
}
}