Вы находитесь на странице: 1из 12

CursodeJavaAula10

JDesktopPane JInternalFrame

IvoAugustoFontanaBertoncello MarcelodeOliveiraDias

JDesktopPane
JDesktopPaneumconteinerde JComponent,ouseja,umpainel.Utilizando JDesktopPaneconseguesecriarmtiplasjanelas dentrodeumajanelaprincipal. ComooJDesktopPanefoiprojetadopara suportaroutrasjanelasemseuinterior, desaconselhvelsuautilizaocomoumpainel normal.

JInternalFrame
JInternalFrameaclassequeimplementa janelasinternasnoJAVA. Aplicaesquefazemusodessetipode interfaceMDIMultipleDocumentInterface soprojetadosparatrabalharcommltiplos documentosparalelamente.

Utilizandoos
ParacriarumainterfaceMDIprimeiramente temosqueterumajanelaprincipalparagerenciar asdemais:
publicclassJPrincipalextendsJFrame{ publicJPrincipal(){ super(JanelaPrincipal); this.setBounds(50,50,500,500); this.setDefaultCloseOperation(3); this.setVisible(true); } publicstaticvoidmain(Stringargs[]){ newJPrincipal(); } }

UtilizandoJDesktopPane
DefinimosentoumJDesktopPaneedefinimosele comoocontainerdajanelaprincipal:
publicclassJPrincipalextendsJFrame{ privateJDesktopPanedesktop;//declarandoumconteinerdotipoJDesktopPane publicJPrincipal(){ super(JanelaPrincipal); desktop=newJDesktopPane();//instanciandonossodesktop this.setContentPane(desktop);//definidoocomoconteinerda this.setBounds(50,50,500,500); this.setDefaultCloseOperation(3); this.setVisible(true);

janela

} publicstaticvoidmain(Stringargs[]){ newJPrincipal(); }

UtilizandoJDesktopPane
Vamoscontruirummenuatravsdomtodo abaixo:
publicvoidconstroiMenu(){ JMenuarquivo=newJMenu("Arquivo"); JMenuItemnovo=newJMenuItem("Novo"); novo.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_N,InputEvent.CTRL_MASK)); novo.addActionListener(this); JMenuBarbarra=newJMenuBar(); barra.add(arquivo); arquivo.add(novo); }

this.setJMenuBar(barra);

UtilizandoJDesktopPane
NoesquecendodeimplementarActionListenernajanelaedeadicionaromtodo constroiMenunoconstrutordajanela:
publicclassJPrincipalextendsJFrameimplementsActionListener{ privateJDesktopPanedesktop;//declarandoumconteinerdotipoJDesktopPane privateintcontJanela=0;//Contadordejanelasinternas publicJPrincipal(){ super(JanelaPrincipal); desktop=newJDesktopPane();//instanciandonossodesktop this.setContentPane(desktop);//definidoocomoconteinerdajanela this.constroiMenu(); this.setBounds(50,50,500,500); this.setDefaultCloseOperation(3); this.setVisible(true);

publicvoidcontroiMenu(){

. . .

UtilizandoJInternalFrame
Agoravamosimplementarumaaoparaobotoconstruir janelasinternas.
publicvoidactionPerformed(ActionEvente){ JInternalFrameinterna=newJInternalFrame("JanelaInterna"+(+ +contJanelas), true,true,true, true); interna.setBounds(10,10,100,100); interna.setVisible(true); desk.add(interna); }

Issofazcomqueacadavezqueclicarnomenunovo apareaumanovajanelainterna.

API
JIntenalFrame
JInternalFrameinterna=newJInternalFrame(Stringtitle, booleanresizable,//setruepodeesticarajanela! booleanclosable,//setruepodefecharajanela! booleanmaximizable,//setruepodemaximizarajanela! booleaniconifiable//setruepodeminimizarajanala! ) Exemplo:
JInternalFrameinterna=newJInternalFrame(eu,true,true,true,true);

API
janela.show(); Mostra,trazprafrenteeselecionaajanela. janela.toFront(); Trazajanelaprafrentedetodasasoutras. janela.toBack(); Empurraajanelapratrazdetodasasoutras. janela.moveToFront(); Trazajanelaumnvelprafrente. janela.moveToBack(); Empuraaajanelaumnvelpratrs.

API
JDesktopPane
JDesktopPanedesktop=newJDesktopPane(); Criaumpaineldesktop! desktop.getAllFrames();
RetornaumvetordeJInternalFramecontidonodesktop. desktop.getSelectedFrame(); RetornaoJInternalFrameselecionado. desktop.setSelectedFrame(JInternalFrameinterna); Definequalajanelaaserselecionada desktop.selectFrame(true); Selecionaprximajanela,ouanteriorsefalse.

API
desktop.removeAll(); Removetodasasjanelasdodesktop. desktop.setDragMode(intmodo) Definecomoarrastoapenasabordadasjanelasse modo=1. Definecomoarrastotodaajanelasemodo=0.

desktop.setComponentZOrder(JInternalFramei,into); Especficaaposioexatadeumajanelainternana coordenadasz.

Вам также может понравиться