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
请大家给个思路,有代码更好!谢谢! 展开
public A extends Jframe{
public A(){
Jpanel jp=new Jpanel();
}
public String way1(){}
public String way2(){}
public String way3(){}
}
请问在其他类中如何用jp调用way1,way2,way3
请大家给个思路,有代码更好!谢谢! 展开
4个回答
展开全部
其实很简单的。。
在构造出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的对象了。。
在构造出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
看不懂我上面写的么?
展开全部
楼上 的思路, 需要你创建一个新的class extends JPanel 例如 MyJpanel,然后MyJpanel jp = new MyJpanel(this)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这样做的目的是什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码示例:
public A extends Jframe{
public A(){
}
public String way1(){}
public String way2(){}
public String way3(){}
}
其他类中:
A a=new A();
a.way1();
就像这样调用方法;
你创建对象的方法错误,不应该在构造方法中创建对象,这是不可以的。
不需要在窗口实例中创建面板,只需要在窗口对象中加载一个面板对象就可以了
public A extends Jframe{
public A(){
}
public String way1(){}
public String way2(){}
public String way3(){}
}
其他类中:
A a=new A();
a.way1();
就像这样调用方法;
你创建对象的方法错误,不应该在构造方法中创建对象,这是不可以的。
不需要在窗口实例中创建面板,只需要在窗口对象中加载一个面板对象就可以了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询