Vous êtes sur la page 1sur 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.

Vous aimerez peut-être aussi