Академический Документы
Профессиональный Документы
Культура Документы
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.