introducción a swing · para visualizar un control swing en pantalla, debe ... queremos mostrarlo...
TRANSCRIPT
![Page 1: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/1.jpg)
IntroducciónaSwingTallerdeProgramación [email protected]
![Page 2: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/2.jpg)
• ¿Quédebemosdesarrollar?• ¿Cómoaplicamoslosconocimientosprevios?• ¿Pordóndeempezar?
• Empecemosporentenderelcontextoylaarquitecturadeloquedebemosconstruirenestaprimeraetapa
Introducción
![Page 3: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/3.jpg)
• Desarrollaremosunsistemadistribuido• Cadacomponentetienesupropiaarquitectura
Introducción
![Page 4: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/4.jpg)
• ConocemosloqueeslaArquitecturaenCapas
Introducción
![Page 5: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/5.jpg)
Introducción
![Page 6: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/6.jpg)
• Pensemosenlacalidaddelsoftware•MásprecisamenteenlaUSABILIDAD
Introducción
![Page 7: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/7.jpg)
Introducción
![Page 8: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/8.jpg)
• Relacionémosloconellaboratorio
DiagramadecomponentespropuestoenlaletraparaelServidorCentral
Introducción
![Page 9: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/9.jpg)
• Resumendelcontexto▫ Serequiereunacapadepresentacióngráfica,noporconsoladecomandos▫ Esdecir,elproyectorequiereunatecnología paraconstruirunacapadepresentaciónmásamigable eintuitiva▫ ParacumplircondichorequerimientoseproponeelusodeSwing
Introducción
![Page 10: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/10.jpg)
• TecnologíaJavaparalaconstruccióndeinterfacesdegráficas(GUI)deescritorio• Biblioteca quecontieneunconjuntodecontrolesyelementosgráficos quepermiteninteractuarconlalógicadelaaplicación• javax.swing• javax.swing.events
• Permiteconstruirinterfacescapacesdeserejecutadasendiferentesplataformas
¿QuéesSwing?
![Page 11: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/11.jpg)
• Veamoslasprincipalescaracterísticas:▫ Componentes::quéformapartedelaGUI▫ LayoutManagers::cómoseorganizan▫Modelos::cómosemuestrainformación▫ Eventos::cómoserealizanacciones
¿QuéesSwing?
![Page 12: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/12.jpg)
• Jerarquíadecomponentes▫ ContenedoresdeAltoNivel(top-level containers)� sonlaraízdelajerarquíadecomponentes▫ ContenedoresIntermedios(intermediate containers)� puedentenerotroscontenedoresintermediosy/ocomponentesbásicos
▫ ComponentesBásicos(basic components)� controleselementalesparaentradaysalidadedatosalosusuariosfinalescomobotones,listas,etiquetas,etc.
¿QuéesSwing?::Componentes
![Page 13: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/13.jpg)
¿QuéesSwing?::ComponentesJFrame
JInternalFrame
JButtonJTextField
JLabelJComboBox
JMenuBar
JMenuItem
JMenu
![Page 14: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/14.jpg)
• ContenedoresdeAltoNivel▫ Algunostop-level containers� JFrame:ventanacontítulo,bordeycontenido� JDialog:sub-ventanaindependiente(cuadrodediálogo)
▫ ParavisualizaruncontrolSwingenpantalla,debeperteneceraalgunajerarquíadecontenedores(cuyaraízseráuntop-level container)▫ Cadatop-level container tieneuncontent-pane quecontendrátodosloscomponentesvisibles
¿QuéesSwing?::Componentes
![Page 15: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/15.jpg)
• ContenedoresdeAltoNivel• Opcionalmenteuntop-levelpuedeincluirunabarrademenús(menubar)• Labarrademenúnoestácontenidaenelcontent-pane
¿QuéesSwing?::Componentes
![Page 16: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/16.jpg)
• ContenedoresIntermedios,ejemplos▫ JPanel:contenedordecomponentes▫ JScrollPane:proporcionabarrasdedesplazamientoalrededordeuncomponente▫ JSplitPane:permitealusuariocambiareltamañorelativodedoscomponentes▫ JInternalFrame:ventanadentrodeotraventana
¿QuéesSwing?::Componentes
![Page 17: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/17.jpg)
• ContenedoresBásicos,ejemplos▫ JLabel:etiquetatextual▫ JTextField:campoparaelingresodetexto▫ JComboBox:muestraunalistadeopcionescomouncombodesplegable▫ JButton:botónquepermiteasociarunaacciónaleventodepulsadodelbotón
¿QuéesSwing?::Componentes
![Page 18: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/18.jpg)
• Layout▫ Serefierealesquemadedistribucióndeloselementosdentrodeundiseño
• LayoutManager▫ EsunobjetoqueimplementalainterfazLayoutManagerydeterminaeltamañoyposicióndeloscomponentesdentrodeuncontenedor▫ Realizaellayout(tamañoyubicación)automáticodeloselementosqueseagreganalcontenedoralcualellayoutmanagercontrola
¿QuéesSwing?::Layouts
![Page 19: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/19.jpg)
• Layout Manager▫ Existenmúltiplesformaspreexistentesdelayoutmanagersasícomolaposibilidaddenoutilizarningúnlayout manager(llamadoAbsolute Layout).▫ Tambiénsepuedencrearlayout managerspersonalizados(pococomúnydesaconsejable)▫ Losmássencillosson:BorderLayout,FlowLayout,BoxLayout yGridLayout
¿QuéesSwing?::Layouts
![Page 20: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/20.jpg)
BorderLayout
Utilizacincozonasparacolocarcomponentes
FlowLayout
Acomodaloscomponentesdeizquierdaaderecha
BoxLayout
Componentesdeformahorizontalyvertical(X,Y)
GridLayout
Acomodacomponentesenformadematriz
¿QuéesSwing?::Layouts
![Page 21: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/21.jpg)
• UsodeModelos (pequeñavisión)▫ Casilatotalidaddeloscomponentesposeenunmodelo(Model),aunquetípicamenteelprogramadornonecesitesaberdeél▫ Losmodelosmásútilessoncoleccionesdeelementosqueseránmostradosporcomponentes▫ Porejemplo,sitenemosunalistadeelementos,yqueremosmostrarloenuncontrolJList,debemostrabajarsobreelmodelodelalista(conlacolección),paraqueestaseveabienenpantalla
¿QuéesSwing?::Modelos
![Page 22: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/22.jpg)
• UnusonecesariodelosmodelosesparamanipularlainformacióndeunaJTable
¿QuéesSwing?::Modelos
![Page 23: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/23.jpg)
•Manejodeeventos▫ UneventoocurrecadavezqueelusuariointeractúaconcomponentesdelaGUI▫ Todocomponentetieneunaseriedeeventosquese“disparan”,alosquepodemosespecificarlesuncódigoqueseejecutarácuandoestoocurra▫ Similaralmanejodeexcepciones,perouneventonomanejadonoprovocaunerrorenelprograma
¿QuéesSwing?¿QuéesSwing?::Eventos
![Page 24: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/24.jpg)
• Alpresionarelbotón“Registrar”,secapturaelevento“click”yseejecutaelcódigodefinido• Enestecasosetomanlosdatosdelainterfazgráfica:nombre,apellidoyC.I.• Luegosellamaaunainterfazdecasodeuso,queregistraunUsuarioenelSistema
¿QuéesSwing?::Eventos
![Page 25: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/25.jpg)
• ¿CómodesarrollarenSwing?▫ Hacerlomediantecódigopuro▫ UtilizarcomoayudaeldiseñadorincorporadoenlosIDE,elcualgeneracódigoparafacilitarelprocesodediseñoGUI.
Recomendacionesprácticas
![Page 26: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/26.jpg)
Diseñador
MedianteDragandDrop(arrastrarysoltar),elusuarioProgramadordiseñalainterfaz
Luegoseagregaelcódigopertinenteparatrabajarconlalógica(eventos,etc.)
Recomendacionesprácticas
![Page 27: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/27.jpg)
• SehacreadounsoftwarequepermiteelregistroybúsquedadeUsuarios• Sistemaencapas• Lógica:siguiendobuenasprácticascondatatypes yexcepcionesespecíficasparacomunicarseconlapresentación• Presentación:cadaventanaenunaclaseseparadapara facilitareldiseño
Demo
![Page 28: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/28.jpg)
Demo
![Page 29: Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo en un control JList, debemos trabajar sobre el modelo de la lista (con la](https://reader031.vdocuments.co/reader031/viewer/2022020319/5c6f7a5709d3f2754c8c051c/html5/thumbnails/29.jpg)
TheSwingTutorial(Oracle)http://download.oracle.com/javase/tutorial/uiswing/index.html
TheDefinitiveGuidetoJavaSwing(J.Zukowski)http://link.springer.com/book/10.1007/978-1-4302-0033-8
PiensaenJava(B.Eckel)http://www.univo.edu.mx/computo/maestria/Pensando%20En%20Java.pdf
WindowBuilderUserGuidehttp://help.eclipse.org/oxygen/index.jsp
Referencias