Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo...

29
Introducción a Swing Taller de Programación 2017 [email protected]

Transcript of Introducción a Swing · Para visualizar un control Swing en pantalla, debe ... queremos mostrarlo...

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

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

• ¿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

• 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

• 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

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

• 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

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

• 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

• 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

• 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

• 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

• 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

¿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

• 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

• 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

• 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

• 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

• 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

• 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

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

• 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

• 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

•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

• 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

• ¿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

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

• 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

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

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