欢迎来到天天文库
浏览记录
ID:40809641
大小:45.02 KB
页数:4页
时间:2019-08-08
《内部子窗体(Java)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、packagewindoweffect;importjava.awt.BorderLayout;importjava.awt.FlowLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JDesktopPane;importjavax.swing.JFrame;importjavax.swing.JInternalFrame;importjavax.swing.JPanel
2、;publicclassInternalChildWindow{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubDemoWindow9dw=newDemoWindow9("内部子窗体");dw.setBounds(dw.getToolkit().getScreenSize().width/3,dw.getToolkit().getScreenSize().height/3,dw.getToolkit().getScreenSize().width
3、/3,dw.getToolkit().getScreenSize().height/3);dw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);dw.setVisible(true);}}classDemoWindow9extendsJFrameimplementsActionListener{JButtonjb1=newJButton("增加");JButtonjb2=newJButton("删除");JPaneljp=newJPanel();MultiPanelmp=newMultiPanel();publi
4、cDemoWindow9(Stringtitle){super(title);add(mp,BorderLayout.CENTER);//窗体布局jp.setLayout(newFlowLayout());jp.add(jb1);jp.add(jb2);add(jp,BorderLayout.SOUTH);jb1.addActionListener(this);jb2.addActionListener(this);}publicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubi
5、f(e.getSource()==jb1){mp.addInternalWindow();}elseif(e.getSource()==jb2){mp.deleteInternalWindow();}}}//能够显示内部子窗体的面板类classMultiPanelextendsJPanel{//内部子窗体数组JInternalFrameip[];//容纳内部子窗体的桌面板JDesktopPanedp=newJDesktopPane();//内部窗体的最大数量为10intmax=10;//当前内部子窗体的数量intnum=0;publicMultiPanel(
6、){ip=newJInternalFrame[max];//面板布局setLayout(newBorderLayout());add(dp,BorderLayout.CENTER);}publicintgetMax(){returnmax;}publicvoidsetMax(intmax){this.max=max;//ip=newJInternalFrame[this.max];}publicvoidaddInternalWindow(){//System.out.println("hello");if(num7、nalFrame();ip[num].setSize(150,150);ip[num].setLocation(num*20,num*20);ip[num].setResizable(true);System.out.println(num);//添加内部子窗体dp.add(ip[num],num);//显示内部子窗体ip[num].setVisible(true);++num;}}//该函数可以删除最后一个被创建的内部子窗体publicvoiddeleteInternalWindow(){if(num>0){--num;//删除最后一个被创建的内部子窗体i8、p[num].setVisible(false);d
7、nalFrame();ip[num].setSize(150,150);ip[num].setLocation(num*20,num*20);ip[num].setResizable(true);System.out.println(num);//添加内部子窗体dp.add(ip[num],num);//显示内部子窗体ip[num].setVisible(true);++num;}}//该函数可以删除最后一个被创建的内部子窗体publicvoiddeleteInternalWindow(){if(num>0){--num;//删除最后一个被创建的内部子窗体i
8、p[num].setVisible(false);d
此文档下载收益归作者所有