java swing中一个窗口类里创建一个面板实例,如何让面板实例调用窗口类中的方法?

代码示例:publicAextendsJframe{publicA(){Jpaneljp=newJpanel();}publicStringway1(){}publicS... 代码示例:
public A extends Jframe{
public A(){
Jpanel jp=new Jpanel();
}
public String way1(){}
public String way2(){}
public String way3(){}
}
请问在其他类中如何用jp调用way1,way2,way3
请大家给个思路,有代码更好!谢谢!
展开
 我来答
画新子F
推荐于2018-04-06 · TA获得超过1189个赞
知道小有建树答主
回答量:390
采纳率:50%
帮助的人:411万
展开全部
其实很简单的。。
在构造出a类的时候,就同步加载出jp类就行了。

具体做法挺简单的,只需在加载A完成之后,将A对象传给即将new出来的B对象即可。

例如:Jpanel jp=new Jpanel(this);
这里this指的是A类, 表示将A传入Jpanel类,然后你自己去Jpanel类中写一个参数为A的构造方法,接收一下,然后定义一个成员属性 A a = null;
在这个构造方法里面 给 a赋值即可。
这样b就持有了a的对象,同时a也有b的对象了。。
追问
先谢谢你,你的意思是this是A类的对象,窗口怎么能加到面板中呢?或许可以,但牵扯到布局,我现在是编译通不过。就这句Jpanel jp=new Jpanel(this)
追答
Jpanel jp=new Jpanel(this)
这句肯定错了啊, 你那个类名是Jpanel?肯定不是吧,如果是也只能改成继承Jpanel。
然后你要写一个构造方法,有一个参数,是A
看不懂我上面写的么?
sincere1809
2012-09-21 · TA获得超过122个赞
知道答主
回答量:79
采纳率:0%
帮助的人:53.1万
展开全部
楼上 的思路, 需要你创建一个新的class extends JPanel 例如 MyJpanel,然后MyJpanel jp = new MyJpanel(this)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Tinx_Lee
2015-08-18 · 超过13用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:31万
展开全部
你这样做的目的是什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stuliper
推荐于2016-07-26 · 超过20用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:39.4万
展开全部
代码示例:
public A extends Jframe{
public A(){
}
public String way1(){}
public String way2(){}
public String way3(){}
}
其他类中:
A a=new A();
a.way1();

就像这样调用方法;
你创建对象的方法错误,不应该在构造方法中创建对象,这是不可以的。
不需要在窗口实例中创建面板,只需要在窗口对象中加载一个面板对象就可以了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式