JAVA中我要在一个JFrame中调用另一个类中的JPane 应该怎样实现呢?
2个回答
展开全部
将你用的那个类单独拿出来,单独继承JPanel类,里面的布局,一样就行,注意JFranme里的变量要移到新的类里,主方法调用的时候另外调用,
public class Cl1 extends JFrame
{
……
JPanel jpanel2=new JPanel();
JButton jbutton=new JButton("s");
jpanel2.add(jbutton);
Container content=getContentPane();
content.add(jpanel2);
……
}
改为
public class Cl1 extends JFrame
{
……
JPanel2 jpanel2=new JPanel2();
Container content=getContentPane();
content.add(jpanel2);
……
}
和
public class JPanel2 extends JPanel{
……
JButton jbutton=new JButton("s")
this.add(jbutton);
//注意jbutton的触发事件及处理要移过来
……
}
这样你的
public class Cl1 extends JFrame中就可以添加一摸一样的面板了
但是注意button等控件处理触发事件的方式是一样的
最好在处理事件时用if语句加以区分,如果你这两个面板只是格式一样,而作用不一样的话
也可以单独写一个类,类里的方法就是事件的处理方法
比如
public class OP{
void fun(int k){
switch(k)
case 1:
方法1();
break;
……
}
方法1(){
}
方法2(){
}
方法3(){
}
}
不过一般来说,如果你需要调用另一个类中的JPanel应该是完全一样的,连事件也是一样的,用不到这么麻烦
public class Cl1 extends JFrame
{
……
JPanel jpanel2=new JPanel();
JButton jbutton=new JButton("s");
jpanel2.add(jbutton);
Container content=getContentPane();
content.add(jpanel2);
……
}
改为
public class Cl1 extends JFrame
{
……
JPanel2 jpanel2=new JPanel2();
Container content=getContentPane();
content.add(jpanel2);
……
}
和
public class JPanel2 extends JPanel{
……
JButton jbutton=new JButton("s")
this.add(jbutton);
//注意jbutton的触发事件及处理要移过来
……
}
这样你的
public class Cl1 extends JFrame中就可以添加一摸一样的面板了
但是注意button等控件处理触发事件的方式是一样的
最好在处理事件时用if语句加以区分,如果你这两个面板只是格式一样,而作用不一样的话
也可以单独写一个类,类里的方法就是事件的处理方法
比如
public class OP{
void fun(int k){
switch(k)
case 1:
方法1();
break;
……
}
方法1(){
}
方法2(){
}
方法3(){
}
}
不过一般来说,如果你需要调用另一个类中的JPanel应该是完全一样的,连事件也是一样的,用不到这么麻烦
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询