java TextArea 求教

程序A中有一个主JFrame里面有一个TextArea,程序在执行过程中调用B类进行处理,但在B类执行过程中需要更新TextArea内容,请问该如何实现。谢谢!在JFra... 程序A中有一个主JFrame里面有一个TextArea,程序在执行过程中调用B类进行处理,但在B类执行过程中需要更新TextArea内容,请问该如何实现。谢谢!在JFrame类中设置了public void setappend方法, 在B类中 new A().setappend(str)执行后,没有成功更新内容,请教该如何在其他类中更新此A类中的TextArea内容,谢谢! 展开
 我来答
Stale331x
2013-07-13 · TA获得超过1299个赞
知道小有建树答主
回答量:1276
采纳率:33%
帮助的人:833万
展开全部
其实,有个很简单的方法。
你可以再类B中,构造方法那里,弄一个参数为JFrame,在A调用类B的时候,为 B b=new B(this);
这样就把A的对象给传进B的对象了。
然后,在A里面,设置一个public的方法,如为 public void setTextAreaText(String text);
然后,在B中,就直接用你传入的A对象,调用setTextAreaText("text")即可
manwu91
2013-07-12 · TA获得超过486个赞
知道小有建树答主
回答量:385
采纳率:71%
帮助的人:289万
展开全部
知道回调模式不?
首先定义一个接口,
public interface Callbackable {
public void onCallback(String info);
},
写你的主JFrame
public class MyFrame extends JFrame implements Callbackable {
private JTextArea textArea;
...
@Override
public void onCallback(String info) {
this.textArea.setText(info);
//其他代码。。。
}
定义你的类B,
class B {
private Callbackable handle;
public B(Callbackable handle) {
this.handle=handle;
}
//你的处理代码的方法

public void process() {
//你的处理代码...
//处理完成通过handle回调
this.handle.onCallback(info);
}
}
然后在MyFrame中实例化类B

new B(this),来把自身传给类B,这样在B中就有了一个handle(以前学C++的时候这个东西叫句柄,现在也这么叫吧),通过这个handle来回调MyFrame.

你可以把B类中的handle定义成一个Callbackable容器,然后通过一个addAfterProcessHandler(Callable c)来实现更复杂的控制。这也是一般的GUI事件处理机制(回调模式),如android和java Swing,没事的时候建议你多看些基础的东西。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
栩如风
2013-07-13
知道答主
回答量:25
采纳率:0%
帮助的人:15.4万
展开全部
在类B的构造函数中的参数添加个类A类型的变量,同时类B设个类A的成员变量,在类A中调用类B时把类A自身this传过去,赋给类B中的变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式