您的位置:程序门 -> java ->



点击子窗口按钮,实现在父窗口打开了个新的子窗口


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


点击子窗口按钮,实现在父窗口打开了个新的子窗口
发表于:2007-10-19 09:05:51 楼主
如题,

我现在有三个窗口文件,一个是mainframe,他继承自jframe
                                    第二个和第三个文件分别是aaframe、bbframe,都继承自jinternalframe
我现在以实现点击mainframe的按钮,可心出现子窗口aaframe,但在点击aaframe的按钮时,如何才能实现在mainframe窗口里重新打开一个新的子窗口bbframe,且aaframe、bbframe都是同级的,请问这个按钮的事件代码应该怎么写,才能实现此功能。


在线等,请大家帮帮我
发表于:2007-10-19 09:49:321楼 得分:0
jdesktoppane   desk   =   new   jdesktoppane()
mainframe.getcontentpane().add(desk,   borderlayout.center);
dimension   d   =   desk.getsize();
aaframe.setbounds(0,   0,   d.width,   d.height);
aaframe.show();
desk.add(aaframe);
aaframe.setselected(true);
此时点击aaframe上的按钮事件来显示子窗口bbframe
public   void   actionperformed(actionevent   e)   {
    dimension   d   =   desk.getsize();
    bbframe.setbounds(0,   0,   d.width,   d.height);
    bbframe.show();
    desk.add(bbframe);
    bbframe.setselected(true);
}
发表于:2007-10-19 11:27:392楼 得分:0
不行呀,这段代码是加在mainframe文件里的
jdesktoppane   desk   =   new   jdesktoppane()  
mainframe.getcontentpane().add(desk,   borderlayout.center);  
dimension   d   =   desk.getsize();  
aaframe.setbounds(0,   0,   d.width,   d.height);  
aaframe.show();  
desk.add(aaframe);  
aaframe.setselected(true);  


此时点击aaframe上的按钮事件来显示子窗口bbframe,当然是加在aaframe文件里了,  
public   void   actionperformed(actionevent   e)   {  
    dimension   d   =   desk.getsize();  
    bbframe.setbounds(0,   0,   d.width,   d.height);  
    bbframe.show();  
    desk.add(bbframe);  
    bbframe.setselected(true);  
}

可是aaframe文件里,没有新建
jdesktoppane   desk   =   new   jdesktoppane()  
或者是new   一个mainfarme对像,
我是new   一个mainfarme对像,
并且desk.add(bbframe);   改成了
mainfarme.desk.add(bbframe);
可是还是不行,
应该是什么改呀,请说的详细点,谢谢了
发表于:2007-10-22 16:55:353楼 得分:0

/**   三个类,aainternalframe\bbinternalframe\mainframe   **/


/**   aainternalframe   -----------------------------------------------------------   **/

import   java.awt.borderlayout;
import   java.awt.rectangle;
import   java.awt.event.actionlistener;

import   javax.swing.jbutton;
import   javax.swing.jlabel;
import   javax.swing.swingconstants;

public   class   aainternalframe   extends   javax.swing.jinternalframe   {

private   jlabel   jlabel1;

private   jbutton   button;

public   aainternalframe()   {
super("aa",   true,   true,   true,   true);
initui();
}

private   void   initui()   {
try   {
setbounds(new   rectangle(0,   0,   200,   200));
borderlayout   thislayout   =   new   borderlayout();

getcontentpane().setlayout(thislayout);
{
jlabel1   =   new   jlabel();
getcontentpane().add(jlabel1,   borderlayout.center);
jlabel1.settext("aaaaaaaaaaaaaaaa");
jlabel1.sethorizontalalignment(swingconstants.center);
}
{
button   =   new   jbutton();
getcontentpane().add(button,   borderlayout.south);
button.settext("button");
}

setvisible(true);

}   catch   (exception   e)   {
e.printstacktrace();
}
}

public   void   addbuttonactionlistener(actionlistener   l)   {
button.addactionlistener(l);
}

}


/**   bbinternalframe-----------------------------------------------------------   **/

import   java.awt.borderlayout;
import   java.awt.rectangle;

import   javax.swing.jlabel;

public   class   bbinternalframe   extends   javax.swing.jinternalframe   {
private   jlabel   jlabel1;

public   bbinternalframe()   {
super("bb",   true,   true,   true,   true);
initgui();
}

private   void   initgui()   {
try   {
setbounds(new   rectangle(0,   0,   300,   300));
{
jlabel1   =   new   jlabel();
getcontentpane().add(jlabel1,   borderlayout.center);
jlabel1.settext("bbbbbbbbbb");
}
setvisible(true);
}   catch   (exception   e)   {
e.printstacktrace();
}
}

}


/**   mainframe   -----------------------------------------------------------   **/

import   java.awt.dimension;
import   java.awt.flowlayout;
import   java.awt.event.actionevent;
import   java.awt.event.actionlistener;

import   javax.swing.jbutton;
import   javax.swing.jdesktoppane;
import   javax.swing.jframe;
import   javax.swing.jpanel;

public   class   mainframe   extends   jframe   implements   actionlistener   {

private   jdesktoppane   desktoppane   =   null;

private   jbutton   buttonaa   =   null;  
private   jbutton   buttonbb   =   null;  

public   mainframe()   {
super();

initui();
}

public   void   initui()   {
setbounds(100,   100,   700,   500);
setdefaultcloseoperation(jframe.exit_on_close);

desktoppane   =   new   jdesktoppane();
desktoppane.setpreferredsize(new   dimension(700,   400));

buttonaa   =   new   jbutton("aaaaaaaa");
buttonbb   =   new   jbutton("bbbbbbbb");

buttonaa.addactionlistener(this);
buttonbb.addactionlistener(this);

jpanel   jp   =   new   jpanel();
jp.setlayout(new   flowlayout());
jp.add(buttonaa);
jp.add(buttonbb);
jp.add(desktoppane);

getcontentpane().add(jp);
}

public   static   void   main(string[]   args)   {
mainframe   mainframe   =   new   mainframe();
mainframe.setvisible(true);
}

@override
public   void   actionperformed(actionevent   e)   {
if(e.getsource()   ==   buttonaa)   {
aainternalframe   internalframeaa   =   new   aainternalframe();
desktoppane.add(internalframeaa);
internalframeaa.addbuttonactionlistener(new   actionlistener()   {

@override
public   void   actionperformed(actionevent   e)   {
bbinternalframe   internalframebb   =   new   bbinternalframe();
desktoppane.add(internalframebb);
}

});
}
else   if(e.getsource()   ==   buttonbb)   {
bbinternalframe   internalframebb   =   new   bbinternalframe();
desktoppane.add(internalframebb);
}
}
}


发表于:2007-10-22 16:59:344楼 得分:0
好长时间没来csdn了,怎么现在改成这个德性了
速度慢了,界面还不好看
直接拷的代码,提交了格式也不对


快速检索

最新资讯
热门点击