├── .gitignore
├── Clase8
├── .classpath
├── .project
├── .settings
│ └── org.eclipse.jdt.core.prefs
├── bin
│ └── app
│ │ ├── App$1.class
│ │ ├── App.class
│ │ ├── client
│ │ ├── components
│ │ │ ├── accion
│ │ │ │ ├── AccionComponent.class
│ │ │ │ └── AccionTemplate.class
│ │ │ ├── amigos
│ │ │ │ ├── AmigosComponent.class
│ │ │ │ └── AmigosTemplate.class
│ │ │ ├── barraTitulo
│ │ │ │ ├── BarraTituloComponent.class
│ │ │ │ └── BarraTituloTemplate.class
│ │ │ ├── configuraciones
│ │ │ │ ├── ConfiguracionesComponent.class
│ │ │ │ └── ConfiguracionesTemplate.class
│ │ │ ├── inicio
│ │ │ │ ├── InicioComponent.class
│ │ │ │ └── InicioTemplate.class
│ │ │ ├── navegacionUsuario
│ │ │ │ ├── NavegacionUsuarioComponent.class
│ │ │ │ └── NavegacionUsuarioTemplate.class
│ │ │ ├── perfil
│ │ │ │ ├── PerfilComponent.class
│ │ │ │ └── PerfilTemplate.class
│ │ │ ├── productos
│ │ │ │ ├── ProductosComponent.class
│ │ │ │ └── ProductosTemplate.class
│ │ │ └── tarjeta
│ │ │ │ ├── TarjetaComponent.class
│ │ │ │ └── TarjetaTemplate.class
│ │ ├── login
│ │ │ ├── LoginComponent.class
│ │ │ └── LoginTemplate.class
│ │ └── vistaPrincipal
│ │ │ ├── VistaPrincipalComponent.class
│ │ │ └── VistaPrincipalTemplate.class
│ │ └── services
│ │ ├── ObjGraficosService.class
│ │ └── RecursosService.class
├── resources
│ ├── fonts
│ │ └── LUZRO.TTF
│ └── images
│ │ ├── acciones
│ │ ├── celular.png
│ │ ├── clases.png
│ │ ├── direccion.png
│ │ ├── estadisticas.png
│ │ ├── ideas.png
│ │ └── pantalla.png
│ │ ├── amigos.png
│ │ ├── cerrar.png
│ │ ├── clave2.png
│ │ ├── configuracion.png
│ │ ├── facebook1.png
│ │ ├── fondo.png
│ │ ├── imagen1.png
│ │ ├── inicio.png
│ │ ├── logo.png
│ │ ├── logo_app.png
│ │ ├── minimizar.png
│ │ ├── perfil.png
│ │ ├── perfiles
│ │ └── perfil1.png
│ │ ├── productos.png
│ │ ├── punto1.png
│ │ ├── salir.png
│ │ ├── tarjetas
│ │ ├── tarjeta1.jpg
│ │ ├── tarjeta2.jpg
│ │ └── tarjeta3.jpg
│ │ ├── twitter1.png
│ │ ├── usuario2.png
│ │ ├── usuario_navegacion.png
│ │ └── youtube1.png
└── src
│ └── app
│ ├── App.java
│ ├── client
│ ├── components
│ │ ├── accion
│ │ │ ├── AccionComponent.java
│ │ │ └── AccionTemplate.java
│ │ ├── amigos
│ │ │ ├── AmigosComponent.java
│ │ │ └── AmigosTemplate.java
│ │ ├── barraTitulo
│ │ │ ├── BarraTituloComponent.java
│ │ │ └── BarraTituloTemplate.java
│ │ ├── configuraciones
│ │ │ ├── ConfiguracionesComponent.java
│ │ │ └── ConfiguracionesTemplate.java
│ │ ├── inicio
│ │ │ ├── InicioComponent.java
│ │ │ └── InicioTemplate.java
│ │ ├── navegacionUsuario
│ │ │ ├── NavegacionUsuarioComponent.java
│ │ │ └── NavegacionUsuarioTemplate.java
│ │ ├── perfil
│ │ │ ├── PerfilComponent.java
│ │ │ └── PerfilTemplate.java
│ │ ├── productos
│ │ │ ├── ProductosComponent.java
│ │ │ └── ProductosTemplate.java
│ │ └── tarjeta
│ │ │ ├── TarjetaComponent.java
│ │ │ └── TarjetaTemplate.java
│ ├── login
│ │ ├── LoginComponent.java
│ │ └── LoginTemplate.java
│ └── vistaPrincipal
│ │ ├── VistaPrincipalComponent.java
│ │ └── VistaPrincipalTemplate.java
│ └── services
│ ├── ObjGraficosService.java
│ └── RecursosService.java
├── README.md
└── gifs
├── MouseClick.gif
├── MouseClickFail.gif
├── MouseDragged.gif
├── MouseEntered.gif
├── MouseExited.gif
├── MouseMoved.gif
├── MousePressed.gif
├── MouseReleased.gif
├── MouseWheel.gif
└── MouseWheelFinal.gif
/.gitignore:
--------------------------------------------------------------------------------
1 | /resources
2 |
--------------------------------------------------------------------------------
/Clase8/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Clase8/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | Clase8
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 |
15 | org.eclipse.jdt.core.javanature
16 |
17 |
18 |
19 | 1600901571836
20 |
21 | 30
22 |
23 | org.eclipse.core.resources.regexFilterMatcher
24 | node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/Clase8/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
5 | org.eclipse.jdt.core.compiler.compliance=10
6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate
7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate
8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate
9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
11 | org.eclipse.jdt.core.compiler.source=11
12 |
--------------------------------------------------------------------------------
/Clase8/bin/app/App$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/App$1.class
--------------------------------------------------------------------------------
/Clase8/bin/app/App.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/App.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/accion/AccionComponent.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/accion/AccionComponent.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/accion/AccionTemplate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/accion/AccionTemplate.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/amigos/AmigosComponent.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/amigos/AmigosComponent.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/amigos/AmigosTemplate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/amigos/AmigosTemplate.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/barraTitulo/BarraTituloComponent.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/barraTitulo/BarraTituloComponent.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/barraTitulo/BarraTituloTemplate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/barraTitulo/BarraTituloTemplate.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/configuraciones/ConfiguracionesComponent.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/configuraciones/ConfiguracionesComponent.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/configuraciones/ConfiguracionesTemplate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/configuraciones/ConfiguracionesTemplate.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/inicio/InicioComponent.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/inicio/InicioComponent.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/inicio/InicioTemplate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/inicio/InicioTemplate.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/navegacionUsuario/NavegacionUsuarioComponent.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/navegacionUsuario/NavegacionUsuarioComponent.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/navegacionUsuario/NavegacionUsuarioTemplate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/navegacionUsuario/NavegacionUsuarioTemplate.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/perfil/PerfilComponent.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/perfil/PerfilComponent.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/perfil/PerfilTemplate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/perfil/PerfilTemplate.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/productos/ProductosComponent.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/productos/ProductosComponent.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/productos/ProductosTemplate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/productos/ProductosTemplate.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/tarjeta/TarjetaComponent.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/tarjeta/TarjetaComponent.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/components/tarjeta/TarjetaTemplate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/components/tarjeta/TarjetaTemplate.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/login/LoginComponent.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/login/LoginComponent.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/login/LoginTemplate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/login/LoginTemplate.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/vistaPrincipal/VistaPrincipalComponent.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/vistaPrincipal/VistaPrincipalComponent.class
--------------------------------------------------------------------------------
/Clase8/bin/app/client/vistaPrincipal/VistaPrincipalTemplate.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/client/vistaPrincipal/VistaPrincipalTemplate.class
--------------------------------------------------------------------------------
/Clase8/bin/app/services/ObjGraficosService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/services/ObjGraficosService.class
--------------------------------------------------------------------------------
/Clase8/bin/app/services/RecursosService.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/bin/app/services/RecursosService.class
--------------------------------------------------------------------------------
/Clase8/resources/fonts/LUZRO.TTF:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/fonts/LUZRO.TTF
--------------------------------------------------------------------------------
/Clase8/resources/images/acciones/celular.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/acciones/celular.png
--------------------------------------------------------------------------------
/Clase8/resources/images/acciones/clases.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/acciones/clases.png
--------------------------------------------------------------------------------
/Clase8/resources/images/acciones/direccion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/acciones/direccion.png
--------------------------------------------------------------------------------
/Clase8/resources/images/acciones/estadisticas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/acciones/estadisticas.png
--------------------------------------------------------------------------------
/Clase8/resources/images/acciones/ideas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/acciones/ideas.png
--------------------------------------------------------------------------------
/Clase8/resources/images/acciones/pantalla.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/acciones/pantalla.png
--------------------------------------------------------------------------------
/Clase8/resources/images/amigos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/amigos.png
--------------------------------------------------------------------------------
/Clase8/resources/images/cerrar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/cerrar.png
--------------------------------------------------------------------------------
/Clase8/resources/images/clave2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/clave2.png
--------------------------------------------------------------------------------
/Clase8/resources/images/configuracion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/configuracion.png
--------------------------------------------------------------------------------
/Clase8/resources/images/facebook1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/facebook1.png
--------------------------------------------------------------------------------
/Clase8/resources/images/fondo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/fondo.png
--------------------------------------------------------------------------------
/Clase8/resources/images/imagen1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/imagen1.png
--------------------------------------------------------------------------------
/Clase8/resources/images/inicio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/inicio.png
--------------------------------------------------------------------------------
/Clase8/resources/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/logo.png
--------------------------------------------------------------------------------
/Clase8/resources/images/logo_app.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/logo_app.png
--------------------------------------------------------------------------------
/Clase8/resources/images/minimizar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/minimizar.png
--------------------------------------------------------------------------------
/Clase8/resources/images/perfil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/perfil.png
--------------------------------------------------------------------------------
/Clase8/resources/images/perfiles/perfil1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/perfiles/perfil1.png
--------------------------------------------------------------------------------
/Clase8/resources/images/productos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/productos.png
--------------------------------------------------------------------------------
/Clase8/resources/images/punto1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/punto1.png
--------------------------------------------------------------------------------
/Clase8/resources/images/salir.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/salir.png
--------------------------------------------------------------------------------
/Clase8/resources/images/tarjetas/tarjeta1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/tarjetas/tarjeta1.jpg
--------------------------------------------------------------------------------
/Clase8/resources/images/tarjetas/tarjeta2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/tarjetas/tarjeta2.jpg
--------------------------------------------------------------------------------
/Clase8/resources/images/tarjetas/tarjeta3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/tarjetas/tarjeta3.jpg
--------------------------------------------------------------------------------
/Clase8/resources/images/twitter1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/twitter1.png
--------------------------------------------------------------------------------
/Clase8/resources/images/usuario2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/usuario2.png
--------------------------------------------------------------------------------
/Clase8/resources/images/usuario_navegacion.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/usuario_navegacion.png
--------------------------------------------------------------------------------
/Clase8/resources/images/youtube1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/Clase8/resources/images/youtube1.png
--------------------------------------------------------------------------------
/Clase8/src/app/App.java:
--------------------------------------------------------------------------------
1 | package app;
2 |
3 | import javax.swing.SwingUtilities;
4 |
5 | import app.client.login.LoginComponent;
6 |
7 | public class App {
8 | public static void main(String[] args) {
9 | Runnable runApplication = new Runnable() {
10 | public void run() {
11 | LoginComponent login = new LoginComponent();
12 | login.getClass();
13 | }
14 | };
15 | SwingUtilities.invokeLater(runApplication);
16 | }
17 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/accion/AccionComponent.java:
--------------------------------------------------------------------------------
1 | package app.client.components.accion;
2 |
3 | import javax.swing.ImageIcon;
4 |
5 | public class AccionComponent {
6 | private AccionTemplate accionTemplate;
7 |
8 | public AccionComponent(ImageIcon imagen, String titulo, String parrafo) {
9 | this.accionTemplate = new AccionTemplate(this, imagen, titulo, parrafo);
10 | }
11 |
12 | public AccionTemplate getAccionTemplate() {
13 | return accionTemplate;
14 | }
15 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/accion/AccionTemplate.java:
--------------------------------------------------------------------------------
1 | package app.client.components.accion;
2 |
3 | import java.awt.Color;
4 | import java.awt.Image;
5 |
6 | import javax.swing.ImageIcon;
7 | import javax.swing.JLabel;
8 | import javax.swing.JPanel;
9 |
10 | import app.services.ObjGraficosService;
11 | import app.services.RecursosService;
12 |
13 | public class AccionTemplate extends JPanel {
14 | private static final long serialVersionUID = 1L;
15 |
16 | // Declaración de servicios y objetos
17 | private ObjGraficosService sObjGraficos;
18 | private RecursosService sRecursos;
19 | private AccionComponent accionComponent;
20 |
21 | // Declaración Objetos Gráficos
22 | private JLabel lImagen, lTitulo, lParrafo;
23 |
24 | // Declaración Objetos Decoradores
25 | private ImageIcon iDimAux;
26 |
27 | public AccionTemplate(
28 | AccionComponent accionComponent,
29 | ImageIcon imagen,
30 | String titulo,
31 | String parrafo
32 | ) {
33 | this.sObjGraficos = ObjGraficosService.getService();
34 | this.sRecursos = RecursosService.getService();
35 | this.accionComponent = accionComponent;
36 | this.accionComponent.getClass();
37 |
38 | iDimAux = new ImageIcon(
39 | imagen.getImage()
40 | .getScaledInstance(45, 45, Image.SCALE_AREA_AVERAGING)
41 | );
42 | this.lImagen = sObjGraficos.construirJLabel(
43 | null,
44 | (250 - 60) / 2, 5, 45, 45,
45 | null,
46 | iDimAux,
47 | null, null, null, null,
48 | "c"
49 | );
50 | this.add(lImagen);
51 |
52 | this.lTitulo = sObjGraficos.construirJLabel(
53 | titulo,
54 | (250 - 220) / 2, 50, 220, 30,
55 | null, null,
56 | sRecursos.getFontTitulo(),
57 | null,
58 | sRecursos.getColorGrisOscuro(),
59 | null,
60 | "c"
61 | );
62 | this.add(lTitulo);
63 |
64 | this.lParrafo = sObjGraficos.construirJLabel(
65 | "
" + parrafo + "
",
66 | (250 - 230) / 2, 75, 230, 50,
67 | null, null,
68 | sRecursos.getFontLigera(),
69 | null,
70 | sRecursos.getColorGrisOscuro(),
71 | null,
72 | "c"
73 | );
74 | this.add(lParrafo);
75 |
76 | this.setSize(250, 125);
77 | this.setBackground(Color.WHITE);
78 | this.setBorder(sRecursos.getBGris());
79 | this.setLayout(null);
80 | this.setVisible(true);
81 | }
82 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/amigos/AmigosComponent.java:
--------------------------------------------------------------------------------
1 | package app.client.components.amigos;
2 |
3 | public class AmigosComponent {
4 | private AmigosTemplate amigosTemplate;
5 |
6 | public AmigosComponent() {
7 | amigosTemplate = new AmigosTemplate(this);
8 | }
9 |
10 | public AmigosTemplate getAmigosTemplate() {
11 | return amigosTemplate;
12 | }
13 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/amigos/AmigosTemplate.java:
--------------------------------------------------------------------------------
1 | package app.client.components.amigos;
2 |
3 | import javax.swing.JPanel;
4 | import java.awt.Color;
5 |
6 | public class AmigosTemplate extends JPanel {
7 | private static final long serialVersionUID = 1L;
8 |
9 | private AmigosComponent amigosComponent;
10 |
11 | public AmigosTemplate(AmigosComponent amigosComponent) {
12 |
13 | this.amigosComponent = amigosComponent;
14 | this.amigosComponent.getClass();
15 |
16 | this.setSize(850, 600);
17 | this.setBackground(Color.GREEN);
18 | this.setLayout(null);
19 | this.setVisible(true);
20 | }
21 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/barraTitulo/BarraTituloComponent.java:
--------------------------------------------------------------------------------
1 | package app.client.components.barraTitulo;
2 |
3 | import java.awt.event.ActionEvent;
4 | import java.awt.event.ActionListener;
5 |
6 | import app.client.vistaPrincipal.VistaPrincipalComponent;
7 |
8 | public class BarraTituloComponent implements ActionListener {
9 | private BarraTituloTemplate barraTituloTemplate;
10 | private VistaPrincipalComponent vistaPrincipalComponent;
11 |
12 | public BarraTituloComponent(VistaPrincipalComponent vistaPrincipalComponent) {
13 | this.vistaPrincipalComponent = vistaPrincipalComponent;
14 | this.barraTituloTemplate = new BarraTituloTemplate(this);
15 | }
16 |
17 | @Override
18 | public void actionPerformed(ActionEvent e) {
19 | if (e.getSource() == barraTituloTemplate.getBMinimizar())
20 | vistaPrincipalComponent.minimizar();
21 | if (e.getSource() == barraTituloTemplate.getBCerrar())
22 | vistaPrincipalComponent.cerrar();
23 | }
24 |
25 | public BarraTituloTemplate getBarraTituloTemplate() {
26 | return this.barraTituloTemplate;
27 | }
28 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/barraTitulo/BarraTituloTemplate.java:
--------------------------------------------------------------------------------
1 | package app.client.components.barraTitulo;
2 |
3 | import app.services.ObjGraficosService;
4 | import app.services.RecursosService;
5 |
6 | import javax.swing.ImageIcon;
7 | import javax.swing.JButton;
8 | import javax.swing.JLabel;
9 | import javax.swing.JPanel;
10 |
11 | import java.awt.Color;
12 | import java.awt.Image;
13 | import java.awt.Font;
14 |
15 | public class BarraTituloTemplate extends JPanel {
16 | private static final long serialVersionUID = 1L;
17 |
18 | // Declaración Servicios y dependencias
19 | private BarraTituloComponent barraTituloComponent;
20 | private ObjGraficosService sObjGraficos;
21 | private RecursosService sRecursos;
22 |
23 | // Declaración objetos gráficos
24 | private JLabel lLogoApp, lTituloApp;
25 | private JButton bCerrar, bMinimizar;
26 |
27 | // Declaración Objetos Decoradores
28 | private ImageIcon iLogoApp, iDimAux;
29 | private Font fontTituloBarra;
30 |
31 | public BarraTituloTemplate(BarraTituloComponent barraTituloComponent) {
32 | this.barraTituloComponent = barraTituloComponent;
33 | this.sObjGraficos = ObjGraficosService.getService();
34 | this.sRecursos = RecursosService.getService();
35 |
36 | this.crearObjetosDecoradores();
37 | this.crearJLabels();
38 | this.crearJButtons();
39 |
40 | this.setSize(850, 50);
41 | this.setBackground(Color.WHITE);
42 | this.setLayout(null);
43 | this.setVisible(true);
44 | }
45 |
46 | public void crearObjetosDecoradores() {
47 | iLogoApp = new ImageIcon("Clase8/resources/images/logo_app.png");
48 | fontTituloBarra = new Font("Britannic Bold", Font.PLAIN, 24);
49 | }
50 |
51 | public void crearJButtons() {
52 | iDimAux = new ImageIcon(
53 | sRecursos.getICerrar().getImage()
54 | .getScaledInstance(23, 23, Image.SCALE_AREA_AVERAGING)
55 | );
56 | bCerrar = sObjGraficos.construirJButton(
57 | null,
58 | 800, 10, 45, 30,
59 | sRecursos.getCMano(),
60 | iDimAux,
61 | null, null, null, null,
62 | "c",
63 | false
64 | );
65 | bCerrar.addActionListener(barraTituloComponent);
66 | this.add(bCerrar);
67 |
68 | iDimAux = new ImageIcon(
69 | sRecursos.getIMinimizar().getImage()
70 | .getScaledInstance(28, 28, Image.SCALE_AREA_AVERAGING)
71 | );
72 | bMinimizar = sObjGraficos.construirJButton(
73 | null,
74 | 750, 10, 45, 30,
75 | sRecursos.getCMano(),
76 | iDimAux,
77 | null, null, null, null,
78 | "c",
79 | false
80 | );
81 | bMinimizar.addActionListener(barraTituloComponent);
82 | this.add(bMinimizar);
83 | }
84 |
85 | public void crearJLabels() {
86 | iDimAux = new ImageIcon(
87 | iLogoApp.getImage()
88 | .getScaledInstance(50, 50, Image.SCALE_AREA_AVERAGING)
89 | );
90 | lLogoApp = sObjGraficos.construirJLabel(
91 | null,
92 | 20, 0, 50, 50,
93 | null,
94 | iDimAux,
95 | null, null, null, null,
96 | "c"
97 | );
98 | this.add(lLogoApp);
99 |
100 | lTituloApp = sObjGraficos.construirJLabel(
101 | "ProductList",
102 | 40, 5, 200, 40,
103 | null, null,
104 | fontTituloBarra,
105 | null,
106 | sRecursos.getColorPrincipal(),
107 | null,
108 | "c"
109 | );
110 | this.add(lTituloApp);
111 | }
112 |
113 | public JButton getBCerrar() { return bCerrar; }
114 |
115 | public JButton getBMinimizar() { return bMinimizar; }
116 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/configuraciones/ConfiguracionesComponent.java:
--------------------------------------------------------------------------------
1 | package app.client.components.configuraciones;
2 |
3 | import java.awt.event.MouseEvent;
4 | import java.awt.event.MouseListener;
5 | import java.awt.event.MouseMotionListener;
6 | import java.awt.event.MouseWheelEvent;
7 | import java.awt.event.MouseWheelListener;
8 |
9 | public class ConfiguracionesComponent implements MouseListener, MouseMotionListener, MouseWheelListener {
10 | private ConfiguracionesTemplate configuracionesTemplate;
11 |
12 | public ConfiguracionesComponent() {
13 | configuracionesTemplate = new ConfiguracionesTemplate(this);
14 | }
15 |
16 | public ConfiguracionesTemplate getConfiguracionesTemplate() {
17 | return configuracionesTemplate;
18 | }
19 |
20 | @Override
21 | public void mouseClicked(MouseEvent e) {
22 | this.configuracionesTemplate.getLPOnClickXValor().setText(e.getX() + "");
23 | this.configuracionesTemplate.getLPOnClickYValor().setText(e.getY() + "");
24 | }
25 |
26 | @Override
27 | public void mousePressed(MouseEvent e) {
28 | this.configuracionesTemplate.getLPInicialXValor().setText(e.getX() + "");
29 | this.configuracionesTemplate.getLPInicialYValor().setText(e.getY() + "");
30 | }
31 |
32 | @Override
33 | public void mouseReleased(MouseEvent e) {
34 | this.configuracionesTemplate.getLPFinalXValor().setText(e.getX() + "");
35 | this.configuracionesTemplate.getLPFinalYValor().setText(e.getY() + "");
36 | }
37 |
38 | @Override
39 | public void mouseEntered(MouseEvent e) {
40 | this.configuracionesTemplate.getLEstadoValor().setText("ADENTRO");
41 | }
42 |
43 | @Override
44 | public void mouseExited(MouseEvent e) {
45 | this.configuracionesTemplate.getLEstadoValor().setText("AFUERA");
46 | }
47 |
48 | @Override
49 | public void mouseDragged(MouseEvent e) {
50 | this.configuracionesTemplate.getLLadoXValor().setText(e.getX() + "");
51 | this.configuracionesTemplate.getLLadoYValor().setText(e.getY() + "");
52 | }
53 |
54 | @Override
55 | public void mouseMoved(MouseEvent e) {
56 | this.configuracionesTemplate.getLPActualXValor().setText(e.getX() + "");
57 | this.configuracionesTemplate.getLPActualYValor().setText(e.getY() + "");
58 | }
59 |
60 | @Override
61 | public void mouseWheelMoved(MouseWheelEvent e) {
62 | int valorZoomActual = Integer.parseInt(
63 | this.configuracionesTemplate.getLZoomValor().getText()
64 | );
65 | if (e.getWheelRotation() == -1)
66 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual + 1 + "");
67 | if (e.getWheelRotation() == 1 && valorZoomActual > 0)
68 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual - 1 + "");
69 | }
70 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/configuraciones/ConfiguracionesTemplate.java:
--------------------------------------------------------------------------------
1 | package app.client.components.configuraciones;
2 |
3 | import app.services.ObjGraficosService;
4 | import app.services.RecursosService;
5 |
6 | import java.awt.Cursor;
7 | import java.awt.Color;
8 |
9 | import javax.swing.JLabel;
10 | import javax.swing.JPanel;
11 |
12 | public class ConfiguracionesTemplate extends JPanel {
13 | private static final long serialVersionUID = 1L;
14 |
15 | // Declaración de servicios e inyección
16 | private ConfiguracionesComponent configuracionesComponent;
17 | private ObjGraficosService sObjGraficos;
18 | private RecursosService sRecursosService;
19 |
20 | // Declaración de Objetos Gráficos
21 | private JPanel pDibujo, pDatos;
22 |
23 | // Declaración Labels Estáticos
24 | private JLabel lTitulo, lTituloPosicion, lTituloEstado;
25 | private JLabel lPOnClickX, lPOnClickY, lPInicialX, lPInicialY, lPFinalX, lPFinalY;
26 | private JLabel lPActualX, lPActualY, lLadoX, lLadoY, lZoom, lEstado;
27 |
28 | // Declaración Labels Dinámicos
29 | private JLabel lPOnClickXValor, lPOnClickYValor, lPInicialXValor, lPInicialYValor;
30 | private JLabel lPFinalXValor, lPFinalYValor, lPActualXValor, lPActualYValor;
31 | private JLabel lLadoXValor, lLadoYValor, lZoomValor, lEstadoValor;
32 |
33 | // Declaración Objetos Decoradores
34 | private Cursor cCruz;
35 |
36 | public ConfiguracionesTemplate(ConfiguracionesComponent configuracionesComponent) {
37 | this.configuracionesComponent = configuracionesComponent;
38 | this.configuracionesComponent.getClass();
39 | sObjGraficos = ObjGraficosService.getService();
40 | sRecursosService = RecursosService.getService();
41 |
42 | this.crearObjetosDecoradores();
43 | this.crearJPanels();
44 | this.crearJLabelsEstaticos();
45 | this.crearJLabelsDinamicos();
46 |
47 | this.setSize(850, 600);
48 | this.setBackground(sRecursosService.getColorGrisClaro());
49 | this.setLayout(null);
50 | this.setVisible(true);
51 | }
52 |
53 | public void crearObjetosDecoradores() {
54 | this.cCruz = new Cursor(Cursor.CROSSHAIR_CURSOR);
55 | }
56 |
57 | public void crearJPanels() {
58 | pDibujo = sObjGraficos.construirJPanel(
59 | 15, 15, 500, 570,
60 | Color.WHITE,
61 | sRecursosService.getBGris()
62 | );
63 | pDibujo.setCursor(cCruz);
64 | pDibujo.addMouseListener(this.configuracionesComponent);
65 | pDibujo.addMouseMotionListener(this.configuracionesComponent);
66 | pDibujo.addMouseWheelListener(this.configuracionesComponent);
67 | this.add(pDibujo);
68 |
69 | pDatos = sObjGraficos.construirJPanel(
70 | 530, 15, 305, 570,
71 | Color.WHITE,
72 | sRecursosService.getBGris()
73 | );
74 | this.add(pDatos);
75 | }
76 |
77 | public void crearJLabelsEstaticos() {
78 | // LABEL TITULO -------------------------------------------------------------------------
79 | lTitulo = sObjGraficos.construirJLabel(
80 | "Datos de Eventos",
81 | (this.pDatos.getWidth() - 200) / 2, 15, 200, 40,
82 | null, null,
83 | sRecursosService.getFontTitulo(),
84 | null,
85 | sRecursosService.getColorPrincipal(),
86 | null,
87 | "c"
88 | );
89 | pDatos.add(lTitulo);
90 |
91 | // LABEL TITULO POSICIÓN-----------------------------------------------------------------
92 | lTituloPosicion = sObjGraficos.construirJLabel(
93 | "Datos de Posiciones",
94 | 20, 60, 180, 40,
95 | null, null,
96 | sRecursosService.getFontTitulo(),
97 | null,
98 | sRecursosService.getColorSecundario(),
99 | null,
100 | "l"
101 | );
102 | pDatos.add(lTituloPosicion);
103 |
104 | // LABEL TITULO ESTADO--------------------------------------------------------------------
105 | lTituloEstado = sObjGraficos.construirJLabel(
106 | "Datos de Estado",
107 | 20, 440, 180, 40,
108 | null, null,
109 | sRecursosService.getFontTitulo(),
110 | null,
111 | sRecursosService.getColorSecundario(),
112 | null,
113 | "l"
114 | );
115 | pDatos.add(lTituloEstado);
116 |
117 | // LABEL POSICIÓN EN X CON CLICK----------------------------------------------------------
118 | lPOnClickX = sObjGraficos.construirJLabel(
119 | "Posición en X al dar click: ",
120 | 40, 100, 160, 40,
121 | null, null,
122 | sRecursosService.getFontLigera(),
123 | null,
124 | sRecursosService.getColorPrincipal(),
125 | null,
126 | "l"
127 | );
128 | pDatos.add(lPOnClickX);
129 |
130 | // LABEL POSICIÓN EN Y CON CLICK----------------------------------------------------------
131 | lPOnClickY = sObjGraficos.construirJLabel(
132 | "Posición en Y al dar click: ",
133 | 40, 120, 160, 40,
134 | null, null,
135 | sRecursosService.getFontLigera(),
136 | null,
137 | sRecursosService.getColorPrincipal(),
138 | null,
139 | "l"
140 | );
141 | pDatos.add(lPOnClickY);
142 |
143 | // LABEL POSICIÓN EN X INICIAL----------------------------------------------------------
144 | lPInicialX = sObjGraficos.construirJLabel(
145 | "Posición en X inicial: ",
146 | 40, 160, 160, 40,
147 | null, null,
148 | sRecursosService.getFontLigera(),
149 | null,
150 | sRecursosService.getColorPrincipal(),
151 | null,
152 | "l"
153 | );
154 | pDatos.add(lPInicialX);
155 |
156 | // LABEL POSICIÓN EN Y INICIAL----------------------------------------------------------
157 | lPInicialY = sObjGraficos.construirJLabel(
158 | "Posición en Y inicial: ",
159 | 40, 180, 160, 40,
160 | null, null,
161 | sRecursosService.getFontLigera(),
162 | null,
163 | sRecursosService.getColorPrincipal(),
164 | null,
165 | "l"
166 | );
167 | pDatos.add(lPInicialY);
168 |
169 | // LABEL POSICIÓN EN X FINAL----------------------------------------------------------
170 | lPFinalX = sObjGraficos.construirJLabel(
171 | "Posición en X final: ",
172 | 40, 220, 160, 40,
173 | null, null,
174 | sRecursosService.getFontLigera(),
175 | null,
176 | sRecursosService.getColorPrincipal(),
177 | null,
178 | "l"
179 | );
180 | pDatos.add(lPFinalX);
181 |
182 | // LABEL POSICIÓN EN Y FINAL----------------------------------------------------------
183 | lPFinalY = sObjGraficos.construirJLabel(
184 | "Posición en Y final: ",
185 | 40, 240, 160, 40,
186 | null, null,
187 | sRecursosService.getFontLigera(),
188 | null,
189 | sRecursosService.getColorPrincipal(),
190 | null,
191 | "l"
192 | );
193 | pDatos.add(lPFinalY);
194 |
195 | // LABEL POSICIÓN EN X ACTUAL----------------------------------------------------------
196 | lPActualX = sObjGraficos.construirJLabel(
197 | "Posición en X actual: ",
198 | 40, 280, 160, 40,
199 | null, null,
200 | sRecursosService.getFontLigera(),
201 | null,
202 | sRecursosService.getColorPrincipal(),
203 | null,
204 | "l"
205 | );
206 | pDatos.add(lPActualX);
207 |
208 | // LABEL POSICIÓN EN Y ACTUAL----------------------------------------------------------
209 | lPActualY = sObjGraficos.construirJLabel(
210 | "Posición en Y actual: ",
211 | 40, 300, 160, 40,
212 | null, null,
213 | sRecursosService.getFontLigera(),
214 | null,
215 | sRecursosService.getColorPrincipal(),
216 | null,
217 | "l"
218 | );
219 | pDatos.add(lPActualY);
220 |
221 | // LABEL LADO EN X -------------------------------------------------------------------
222 | lLadoX = sObjGraficos.construirJLabel(
223 | "Valor lado X: ",
224 | 40, 340, 160, 40,
225 | null, null,
226 | sRecursosService.getFontLigera(),
227 | null,
228 | sRecursosService.getColorPrincipal(),
229 | null,
230 | "l"
231 | );
232 | pDatos.add(lLadoX);
233 |
234 | // LABEL LADO EN Y --------------------------------------------------------------------
235 | lLadoY = sObjGraficos.construirJLabel(
236 | "Valor lado Y: ",
237 | 40, 360, 160, 40,
238 | null, null,
239 | sRecursosService.getFontLigera(),
240 | null,
241 | sRecursosService.getColorPrincipal(),
242 | null,
243 | "l"
244 | );
245 | pDatos.add(lLadoY);
246 |
247 | // LABEL ZOOM --------------------------------------------------------------------------
248 | lZoom = sObjGraficos.construirJLabel(
249 | "Zoom en el panel: ",
250 | 40, 400, 160, 40,
251 | null, null,
252 | sRecursosService.getFontLigera(),
253 | null,
254 | sRecursosService.getColorPrincipal(),
255 | null,
256 | "l"
257 | );
258 | pDatos.add(lZoom);
259 |
260 | // LABEL ESTADO ------------------------------------------------------------------------
261 | lEstado = sObjGraficos.construirJLabel(
262 | "Estado: ",
263 | 40, 480, 160, 40,
264 | null, null,
265 | sRecursosService.getFontLigera(),
266 | null,
267 | sRecursosService.getColorPrincipal(),
268 | null,
269 | "l"
270 | );
271 | pDatos.add(lEstado);
272 | }
273 |
274 | public void crearJLabelsDinamicos() {
275 | // LABEL POSICIÓN EN X CON CLICK VALOR -----------------------------------------------------
276 | lPOnClickXValor = sObjGraficos.construirJLabel(
277 | "0",
278 | 200, 100, 160, 40,
279 | null, null,
280 | sRecursosService.getFontLigera(),
281 | null,
282 | sRecursosService.getColorPrincipal(),
283 | null,
284 | "l"
285 | );
286 | pDatos.add(lPOnClickXValor);
287 |
288 | // LABEL POSICIÓN EN Y CON CLICK VALOR -----------------------------------------------------
289 | lPOnClickYValor = sObjGraficos.construirJLabel(
290 | "0",
291 | 200, 120, 160, 40,
292 | null, null,
293 | sRecursosService.getFontLigera(),
294 | null,
295 | sRecursosService.getColorPrincipal(),
296 | null,
297 | "l"
298 | );
299 | pDatos.add(lPOnClickYValor);
300 |
301 | // LABEL POSICIÓN EN X INICIAL VALOR -----------------------------------------------------
302 | lPInicialXValor = sObjGraficos.construirJLabel(
303 | "0",
304 | 200, 160, 160, 40,
305 | null, null,
306 | sRecursosService.getFontLigera(),
307 | null,
308 | sRecursosService.getColorPrincipal(),
309 | null,
310 | "l"
311 | );
312 | pDatos.add(lPInicialXValor);
313 |
314 | // LABEL POSICIÓN EN Y INICIAL VALOR -----------------------------------------------------
315 | lPInicialYValor = sObjGraficos.construirJLabel(
316 | "0",
317 | 200, 180, 160, 40,
318 | null, null,
319 | sRecursosService.getFontLigera(),
320 | null,
321 | sRecursosService.getColorPrincipal(),
322 | null,
323 | "l"
324 | );
325 | pDatos.add(lPInicialYValor);
326 |
327 | // LABEL POSICIÓN EN X FINAL VALOR -----------------------------------------------------
328 | lPFinalXValor = sObjGraficos.construirJLabel(
329 | "0",
330 | 200, 220, 160, 40,
331 | null, null,
332 | sRecursosService.getFontLigera(),
333 | null,
334 | sRecursosService.getColorPrincipal(),
335 | null,
336 | "l"
337 | );
338 | pDatos.add(lPFinalXValor);
339 |
340 | // LABEL POSICIÓN EN Y FINAL VALOR -----------------------------------------------------
341 | lPFinalYValor = sObjGraficos.construirJLabel(
342 | "0",
343 | 200, 240, 160, 40,
344 | null, null,
345 | sRecursosService.getFontLigera(),
346 | null,
347 | sRecursosService.getColorPrincipal(),
348 | null,
349 | "l"
350 | );
351 | pDatos.add(lPFinalYValor);
352 |
353 | // LABEL POSICIÓN EN X ACTUAL VALOR -----------------------------------------------------
354 | lPActualXValor = sObjGraficos.construirJLabel(
355 | "0",
356 | 200, 280, 160, 40,
357 | null, null,
358 | sRecursosService.getFontLigera(),
359 | null,
360 | sRecursosService.getColorPrincipal(),
361 | null,
362 | "l"
363 | );
364 | pDatos.add(lPActualXValor);
365 |
366 | // LABEL POSICIÓN EN Y ACTUAL VALOR -----------------------------------------------------
367 | lPActualYValor = sObjGraficos.construirJLabel(
368 | "0",
369 | 200, 300, 160, 40,
370 | null, null,
371 | sRecursosService.getFontLigera(),
372 | null,
373 | sRecursosService.getColorPrincipal(),
374 | null,
375 | "l"
376 | );
377 | pDatos.add(lPActualYValor);
378 |
379 | // LABEL LADO EN X VALOR --------------------------------------------------------------
380 | lLadoXValor = sObjGraficos.construirJLabel(
381 | "0",
382 | 200, 340, 160, 40,
383 | null, null,
384 | sRecursosService.getFontLigera(),
385 | null,
386 | sRecursosService.getColorPrincipal(),
387 | null,
388 | "l"
389 | );
390 | pDatos.add(lLadoXValor);
391 |
392 | // LABEL LADO EN Y VALOR ---------------------------------------------------------------
393 | lLadoYValor = sObjGraficos.construirJLabel(
394 | "0",
395 | 200, 360, 160, 40,
396 | null, null,
397 | sRecursosService.getFontLigera(),
398 | null,
399 | sRecursosService.getColorPrincipal(),
400 | null,
401 | "l"
402 | );
403 | pDatos.add(lLadoYValor);
404 |
405 | // LABEL ZOOM VALOR ----------------------------------------------------------------------
406 | lZoomValor = sObjGraficos.construirJLabel(
407 | "0",
408 | 200, 400, 160, 40,
409 | null, null,
410 | sRecursosService.getFontLigera(),
411 | null,
412 | sRecursosService.getColorPrincipal(),
413 | null,
414 | "l"
415 | );
416 | pDatos.add(lZoomValor);
417 |
418 | // LABEL ESTADO VALOR -------------------------------------------------------------------
419 | lEstadoValor = sObjGraficos.construirJLabel(
420 | "NINGUNO",
421 | 80, 520, 160, 40,
422 | null, null,
423 | sRecursosService.getFontTitulo(),
424 | null,
425 | sRecursosService.getColorPrincipal(),
426 | null,
427 | "l"
428 | );
429 | pDatos.add(lEstadoValor);
430 | }
431 |
432 | public JLabel getLPOnClickXValor() { return lPOnClickXValor; }
433 |
434 | public JLabel getLPOnClickYValor() { return lPOnClickYValor; }
435 |
436 | public JLabel getLPInicialXValor() { return lPInicialXValor; }
437 |
438 | public JLabel getLPInicialYValor() { return lPInicialYValor; }
439 |
440 | public JLabel getLPFinalXValor() { return lPFinalXValor; }
441 |
442 | public JLabel getLPFinalYValor() { return lPFinalYValor; }
443 |
444 | public JLabel getLPActualXValor() { return lPActualXValor; }
445 |
446 | public JLabel getLPActualYValor() { return lPActualYValor; }
447 |
448 | public JLabel getLLadoXValor() { return lLadoXValor; }
449 |
450 | public JLabel getLLadoYValor() { return lLadoYValor; }
451 |
452 | public JLabel getLZoomValor() { return lZoomValor; }
453 |
454 | public JLabel getLEstadoValor() { return lEstadoValor; }
455 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/inicio/InicioComponent.java:
--------------------------------------------------------------------------------
1 | package app.client.components.inicio;
2 |
3 | public class InicioComponent {
4 | private InicioTemplate inicioTemplate;
5 |
6 | public InicioComponent() {
7 | this.inicioTemplate = new InicioTemplate(this);
8 | }
9 |
10 | public InicioTemplate getInicioTemplate() {
11 | return this.inicioTemplate;
12 | }
13 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/inicio/InicioTemplate.java:
--------------------------------------------------------------------------------
1 | package app.client.components.inicio;
2 |
3 | import java.awt.Color;
4 |
5 | import javax.swing.ImageIcon;
6 | import javax.swing.JLabel;
7 | import javax.swing.JPanel;
8 |
9 | import app.client.components.accion.AccionComponent;
10 | import app.client.components.accion.AccionTemplate;
11 | import app.client.components.tarjeta.TarjetaComponent;
12 | import app.services.ObjGraficosService;
13 | import app.services.RecursosService;
14 |
15 | public class InicioTemplate extends JPanel {
16 | private static final long serialVersionUID = 1L;
17 |
18 | // Declaración Servicios y dependencias
19 | private InicioComponent inicioComponent;
20 | private ObjGraficosService sObjGraficos;
21 | private RecursosService sRecursos;
22 |
23 | // Declaración Objetos Gráficos
24 | private JPanel pMision, pVision, pNosotros, pAcciones;
25 | private JLabel lAcciones;
26 |
27 | // Declaración Objetos Decoradores
28 | private ImageIcon iTarjeta1, iTarjeta2, iTarjeta3;
29 | private ImageIcon iClase, iPantalla, iIdea, iCelular, iEstadistica, iDireccion;
30 |
31 | public InicioTemplate(InicioComponent inicioComponent) {
32 | this.inicioComponent = inicioComponent;
33 | this.inicioComponent.getClass();
34 | sObjGraficos = ObjGraficosService.getService();
35 | sRecursos = RecursosService.getService();
36 |
37 | this.crearObjetosDecoradores();
38 | this.crearJPanels();
39 | this.crearContenidoPMision();
40 | this.crearContenidoPVision();
41 | this.crearContenidoPNosotros();
42 | this.crearContenidoPAcciones();
43 |
44 | this.setSize(850, 600);
45 | this.setBackground(sRecursos.getColorGrisClaro());
46 | this.setLayout(null);
47 | this.setVisible(true);
48 | }
49 |
50 | public void crearJPanels() {
51 | this.pMision = sObjGraficos.construirJPanel(20, 15, 256, 230, Color.WHITE, null);
52 | this.add(pMision);
53 |
54 | this.pVision = sObjGraficos.construirJPanel(296, 15, 256, 230, Color.WHITE, null);
55 | this.add(pVision);
56 |
57 | this.pNosotros = sObjGraficos.construirJPanel(572, 15, 256, 230, Color.WHITE, null);
58 | this.add(pNosotros);
59 |
60 | this.pAcciones = sObjGraficos.construirJPanel(20, 260, 810, 330, Color.WHITE, null);
61 | this.add(pAcciones);
62 | }
63 |
64 | public void crearObjetosDecoradores() {
65 | this.iTarjeta1 = new ImageIcon("Clase8/resources/images/tarjetas/tarjeta1.jpg");
66 | this.iTarjeta2 = new ImageIcon("Clase8/resources/images/tarjetas/tarjeta2.jpg");
67 | this.iTarjeta3 = new ImageIcon("Clase8/resources/images/tarjetas/tarjeta3.jpg");
68 | this.iClase = new ImageIcon("Clase8/resources/images/acciones/clases.png");
69 | this.iPantalla = new ImageIcon("Clase8/resources/images/acciones/pantalla.png");
70 | this.iCelular = new ImageIcon("Clase8/resources/images/acciones/celular.png");
71 | this.iIdea = new ImageIcon("Clase8/resources/images/acciones/ideas.png");
72 | this.iEstadistica = new ImageIcon("Clase8/resources/images/acciones/estadisticas.png");
73 | this.iDireccion = new ImageIcon("Clase8/resources/images/acciones/direccion.png");
74 | }
75 |
76 | public void crearContenidoPMision() {
77 | this.pMision.add(
78 | new TarjetaComponent(
79 | "Nuestra Misión",
80 | iTarjeta1,
81 | "Brindar cursos a la comunidad académica para" +
82 | "complementar habilidades fuera del pensum común."
83 | ).getTarjetaTemplate()
84 | );
85 | }
86 |
87 | public void crearContenidoPVision() {
88 | this.pVision.add(
89 | new TarjetaComponent(
90 | "Nuestra Visión",
91 | iTarjeta2,
92 | "Brindar cursos académicos al 80% de los" +
93 | "estudiantes de ingeniería de Sistemas."
94 | ).getTarjetaTemplate()
95 | );
96 | }
97 |
98 | public void crearContenidoPNosotros() {
99 | this.pNosotros.add(
100 | new TarjetaComponent(
101 | "Sobre Nosotros",
102 | iTarjeta3,
103 | "Somos un grupo de trabajo de la Universidad" +
104 | "distrital Francisco jose de Caldas."
105 | ).getTarjetaTemplate()
106 | );
107 | }
108 |
109 | public void crearContenidoPAcciones() {
110 | this.lAcciones = sObjGraficos.construirJLabel(
111 | "Nuestros Servicios",
112 | 10, 10, 160, 30,
113 | null, null,
114 | sRecursos.getFontTitulo(),
115 | null,
116 | sRecursos.getColorPrincipal(),
117 | null,
118 | "c"
119 | );
120 | this.pAcciones.add(lAcciones);
121 |
122 | // COMPONENTE ACCIÓN 1 ------------------------------------
123 | AccionTemplate p1 = new AccionComponent(
124 | iClase,
125 | "Clases",
126 | "Clases a la comunidad que complementan el pensum."
127 | ).getAccionTemplate();
128 | p1.setLocation(15, 50);
129 | this.pAcciones.add(p1);
130 |
131 | // COMPONENTE ACCIÓN 2 ------------------------------------
132 | AccionTemplate p2 = new AccionComponent(
133 | iPantalla,
134 | "Clases Virtuales",
135 | "Cursos virtuales como medio de enseñanza."
136 | ).getAccionTemplate();
137 | p2.setLocation(30 + p2.getWidth(), 50);
138 | this.pAcciones.add(p2);
139 |
140 | // COMPONENTE ACCIÓN 3 ------------------------------------
141 | AccionTemplate p3 = new AccionComponent(
142 | iIdea,
143 | "Generación de ideas",
144 | "Desarrollo de ideas con tecnologías actuales."
145 | ).getAccionTemplate();
146 | p3.setLocation(45 + p3.getWidth() * 2, 50);
147 | this.pAcciones.add(p3);
148 |
149 | // COMPONENTE ACCIÓN 4 ------------------------------------
150 | AccionTemplate p4 = new AccionComponent(
151 | iCelular,
152 | "Notificaciones",
153 | "Notificaión el estado de tus cursos y actividades."
154 | ).getAccionTemplate();
155 | p4.setLocation(15, 65 + p4.getHeight());
156 | this.pAcciones.add(p4);
157 |
158 | // COMPONENTE ACCIÓN 5 ------------------------------------
159 | AccionTemplate p5 = new AccionComponent(
160 | iEstadistica,
161 | "Estadisticas",
162 | "Gestión de participación en nuestros cursos."
163 | ).getAccionTemplate();
164 | p5.setLocation(30 + p5.getWidth(), 65 + p5.getHeight());
165 | this.pAcciones.add(p5);
166 |
167 | // COMPONENTE ACCIÓN 6 ------------------------------------
168 | AccionTemplate p6 = new AccionComponent(
169 | iDireccion,
170 | "Dirección",
171 | "Damos direcciónamiento a nuestros estudiantes."
172 | ).getAccionTemplate();
173 | p6.setLocation(45 + p6.getWidth() * 2, 65 + p6.getHeight());
174 | this.pAcciones.add(p6);
175 | }
176 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/navegacionUsuario/NavegacionUsuarioComponent.java:
--------------------------------------------------------------------------------
1 | package app.client.components.navegacionUsuario;
2 |
3 | import java.awt.event.ActionEvent;
4 | import java.awt.event.ActionListener;
5 |
6 | import app.client.vistaPrincipal.VistaPrincipalComponent;
7 |
8 | public class NavegacionUsuarioComponent implements ActionListener {
9 | private NavegacionUsuarioTemplate navegacionUsuarioTemplate;
10 | private VistaPrincipalComponent vistaPrincipalComponent;
11 |
12 | public NavegacionUsuarioComponent(VistaPrincipalComponent vistaPrincipalComponent) {
13 | this.vistaPrincipalComponent = vistaPrincipalComponent;
14 | this.navegacionUsuarioTemplate = new NavegacionUsuarioTemplate(this);
15 | }
16 |
17 | @Override
18 | public void actionPerformed(ActionEvent e) {
19 | this.vistaPrincipalComponent.mostrarComponente(e.getActionCommand().trim());
20 | }
21 |
22 | public NavegacionUsuarioTemplate getNavegacionUsuarioTemplate() {
23 | return this.navegacionUsuarioTemplate;
24 | }
25 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/navegacionUsuario/NavegacionUsuarioTemplate.java:
--------------------------------------------------------------------------------
1 | package app.client.components.navegacionUsuario;
2 |
3 | import app.services.ObjGraficosService;
4 | import app.services.RecursosService;
5 |
6 | import java.awt.Color;
7 | import java.awt.Image;
8 |
9 | import javax.swing.ImageIcon;
10 | import javax.swing.JButton;
11 | import javax.swing.JLabel;
12 | import javax.swing.JPanel;
13 | import javax.swing.border.Border;
14 | import javax.swing.border.EmptyBorder;
15 |
16 | public class NavegacionUsuarioTemplate extends JPanel {
17 | private static final long serialVersionUID = 1L;
18 |
19 | // Declaración Servicios y dependencias
20 | private NavegacionUsuarioComponent navegacionUsuarioComponent;
21 | private ObjGraficosService sObjGraficos;
22 | private RecursosService sRecursos;
23 |
24 | // Declaración objetos gráficos
25 | private JPanel pSuperior, pInferior;
26 | private JLabel lNombreUsuario, lEslogan, lImagenUsuario, lIconoUsuario;
27 | private JButton bInicio, bPerfil, bAmigos, bProductos, bConfiguracion, bCerrarSesion;
28 |
29 | // Declaración Objetos Decoradores
30 | private ImageIcon iIconoUsuario, iInicio, iPerfil, iAmigos, iProductos;
31 | private ImageIcon iConfiguracion, iCerrarSesion, iImagenUsuario, iDimAux;
32 | private Border bVacio;
33 |
34 | public NavegacionUsuarioTemplate(NavegacionUsuarioComponent navegacionUsuarioComponent) {
35 | this.navegacionUsuarioComponent = navegacionUsuarioComponent;
36 | this.sObjGraficos = ObjGraficosService.getService();
37 | this.sRecursos = RecursosService.getService();
38 |
39 | this.crearObjetosDecoradores();
40 | this.crearJPanels();
41 | this.crearJLabels();
42 | this.crearJButtons();
43 |
44 | this.setSize(250, 700);
45 | this.setLayout(null);
46 | this.setVisible(true);
47 | }
48 |
49 | public void crearJPanels() {
50 | this.pSuperior = sObjGraficos.construirJPanel(
51 | 0, 0, 250, 300,
52 | sRecursos.getColorPrincipal(),
53 | null
54 | );
55 | this.add(pSuperior);
56 |
57 | this.pInferior = sObjGraficos.construirJPanel(
58 | 0, 300, 250, 400,
59 | sRecursos.getColorPrincipal(),
60 | null
61 | );
62 | this.add(pInferior);
63 | }
64 |
65 | public void crearObjetosDecoradores() {
66 | this.iIconoUsuario = new ImageIcon("Clase8/resources/images/usuario_navegacion.png");
67 | this.iInicio = new ImageIcon("Clase8/resources/images/inicio.png");
68 | this.iPerfil = new ImageIcon("Clase8/resources/images/perfil.png");
69 | this.iAmigos = new ImageIcon("Clase8/resources/images/amigos.png");
70 | this.iProductos = new ImageIcon("Clase8/resources/images/productos.png");
71 | this.iConfiguracion = new ImageIcon("Clase8/resources/images/configuracion.png");
72 | this.iCerrarSesion = new ImageIcon("Clase8/resources/images/salir.png");
73 | this.iImagenUsuario = new ImageIcon("Clase8/resources/images/perfiles/perfil1.png");
74 | this.bVacio = new EmptyBorder(2, 20, 2, 2);
75 | }
76 |
77 | public void crearJButtons() {
78 | // BOTÓN INICIO--------------------------------------------------------------------
79 | iDimAux = new ImageIcon(
80 | iInicio.getImage()
81 | .getScaledInstance(20, 20, Image.SCALE_AREA_AVERAGING)
82 | );
83 | this.bInicio = sObjGraficos.construirJButton(
84 | " Inicio",
85 | 30, 30, 200, 40,
86 | sRecursos.getCMano(),
87 | iDimAux,
88 | sRecursos.getFontMediana(),
89 | null,
90 | Color.WHITE,
91 | bVacio,
92 | "l",
93 | false
94 | );
95 | this.bInicio.addActionListener(navegacionUsuarioComponent);
96 | this.pInferior.add(bInicio);
97 |
98 | // BOTÓN PERFIL--------------------------------------------------------------------
99 | iDimAux = new ImageIcon(
100 | iPerfil.getImage()
101 | .getScaledInstance(20, 20, Image.SCALE_AREA_AVERAGING)
102 | );
103 | this.bPerfil = sObjGraficos.construirJButton(
104 | " Perfil",
105 | 30, 80, 200, 40,
106 | sRecursos.getCMano(),
107 | iDimAux,
108 | sRecursos.getFontMediana(),
109 | null,
110 | Color.WHITE,
111 | bVacio,
112 | "l",
113 | false
114 | );
115 | this.bPerfil.addActionListener(navegacionUsuarioComponent);
116 | this.pInferior.add(bPerfil);
117 |
118 | // BOTÓN AMIGOS--------------------------------------------------------------------
119 | iDimAux = new ImageIcon(
120 | iAmigos.getImage()
121 | .getScaledInstance(20, 20, Image.SCALE_AREA_AVERAGING)
122 | );
123 | this.bAmigos = sObjGraficos.construirJButton(
124 | " Amigos",
125 | 30, 130, 200, 40,
126 | sRecursos.getCMano(),
127 | iDimAux,
128 | sRecursos.getFontMediana(),
129 | null,
130 | Color.WHITE,
131 | bVacio,
132 | "l",
133 | false
134 | );
135 | this.bAmigos.addActionListener(navegacionUsuarioComponent);
136 | this.pInferior.add(bAmigos);
137 |
138 | // BOTÓN PRODUCTOS--------------------------------------------------------------------
139 | iDimAux = new ImageIcon(
140 | iProductos.getImage()
141 | .getScaledInstance(20, 20, Image.SCALE_AREA_AVERAGING)
142 | );
143 | this.bProductos = sObjGraficos.construirJButton(
144 | " Productos",
145 | 30, 180, 200, 40,
146 | sRecursos.getCMano(),
147 | iDimAux,
148 | sRecursos.getFontMediana(),
149 | null,
150 | Color.WHITE,
151 | bVacio,
152 | "l",
153 | false
154 | );
155 | this.bProductos.addActionListener(navegacionUsuarioComponent);
156 | this.pInferior.add(bProductos);
157 |
158 | // BOTÓN CONFIGURACIÓN--------------------------------------------------------------------
159 | iDimAux = new ImageIcon(
160 | iConfiguracion.getImage()
161 | .getScaledInstance(20, 20, Image.SCALE_AREA_AVERAGING)
162 | );
163 | this.bConfiguracion = sObjGraficos.construirJButton(
164 | " Configuraciones",
165 | 30, 230, 200, 40,
166 | sRecursos.getCMano(),
167 | iDimAux,
168 | sRecursos.getFontMediana(),
169 | null,
170 | Color.WHITE,
171 | bVacio,
172 | "l",
173 | false
174 | );
175 | this.bConfiguracion.addActionListener(navegacionUsuarioComponent);
176 | this.pInferior.add(bConfiguracion);
177 |
178 | // BOTÓN CERRAR SESIÓN--------------------------------------------------------------------
179 | iDimAux = new ImageIcon(
180 | iCerrarSesion.getImage()
181 | .getScaledInstance(20, 20, Image.SCALE_AREA_AVERAGING)
182 | );
183 | this.bCerrarSesion = sObjGraficos.construirJButton(
184 | " Cerrar Sesión",
185 | 30, 280, 200, 40,
186 | sRecursos.getCMano(),
187 | iDimAux,
188 | sRecursos.getFontMediana(),
189 | null,
190 | Color.WHITE,
191 | bVacio,
192 | "l",
193 | false
194 | );
195 | this.bCerrarSesion.addActionListener(navegacionUsuarioComponent);
196 | this.pInferior.add(bCerrarSesion);
197 | }
198 |
199 | public void crearJLabels() {
200 | // LABEL ICONO USUARIO--------------------------------------------------------------------
201 | iDimAux = new ImageIcon(
202 | iIconoUsuario.getImage()
203 | .getScaledInstance(40, 40, Image.SCALE_AREA_AVERAGING)
204 | );
205 | this.lIconoUsuario = sObjGraficos.construirJLabel(
206 | null,
207 | 10, 20, 40, 40,
208 | null,
209 | iDimAux,
210 | null, null, null, null,
211 | "c"
212 | );
213 | this.pSuperior.add(lIconoUsuario);
214 |
215 | // LABEL NOMBRE USUARIO--------------------------------------------------------------------
216 | this.lNombreUsuario = sObjGraficos.construirJLabel(
217 | "Nombre de Usuario",
218 | ((this.pSuperior.getWidth() - 200) / 2) + 10, 20, 200, 40,
219 | null, null,
220 | sRecursos.getFontTitulo(),
221 | null,
222 | Color.WHITE,
223 | null,
224 | "c"
225 | );
226 | this.pSuperior.add(lNombreUsuario);
227 |
228 | // LABEL IMAGEN USUARIO--------------------------------------------------------------------
229 | iDimAux = new ImageIcon(
230 | iImagenUsuario.getImage()
231 | .getScaledInstance(180, 180, Image.SCALE_AREA_AVERAGING)
232 | );
233 | this.lImagenUsuario = sObjGraficos.construirJLabel(
234 | null,
235 | (this.pSuperior.getWidth() - 180) / 2, 75, 180, 180,
236 | null,
237 | iDimAux,
238 | null, null, null, null,
239 | "c"
240 | );
241 | this.pSuperior.add(lImagenUsuario);
242 |
243 | // LABEL ESLOGAN--------------------------------------------------------------------
244 | this.lEslogan = sObjGraficos.construirJLabel(
245 | " Nuestros clientes son
lo mas importante
",
246 | (this.pSuperior.getWidth() - 180) / 2, 265, 180, 40,
247 | null, null,
248 | sRecursos.getFontLigera(),
249 | null,
250 | Color.WHITE,
251 | null,
252 | "c");
253 | this.pSuperior.add(lEslogan);
254 | }
255 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/perfil/PerfilComponent.java:
--------------------------------------------------------------------------------
1 | package app.client.components.perfil;
2 |
3 | public class PerfilComponent {
4 | private PerfilTemplate perfilTemplate;
5 |
6 | public PerfilComponent() {
7 | perfilTemplate = new PerfilTemplate(this);
8 | }
9 |
10 | public PerfilTemplate getPerfilTemplate() {
11 | return perfilTemplate;
12 | }
13 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/perfil/PerfilTemplate.java:
--------------------------------------------------------------------------------
1 | package app.client.components.perfil;
2 |
3 | import java.awt.Color;
4 |
5 | import javax.swing.JPanel;
6 |
7 | public class PerfilTemplate extends JPanel {
8 | private static final long serialVersionUID = 1L;
9 |
10 | private PerfilComponent perfilComponent;
11 |
12 | public PerfilTemplate(PerfilComponent perfilComponent) {
13 | this.perfilComponent = perfilComponent;
14 | this.perfilComponent.getClass();
15 |
16 | this.setSize(850, 600);
17 | this.setBackground(Color.RED);
18 | this.setLayout(null);
19 | this.setVisible(true);
20 | }
21 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/productos/ProductosComponent.java:
--------------------------------------------------------------------------------
1 | package app.client.components.productos;
2 |
3 | public class ProductosComponent {
4 | private ProductosTemplate productosTemplate;
5 |
6 | public ProductosComponent() {
7 | productosTemplate = new ProductosTemplate(this);
8 | }
9 |
10 | public ProductosTemplate getProductosTemplate() {
11 | return productosTemplate;
12 | }
13 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/productos/ProductosTemplate.java:
--------------------------------------------------------------------------------
1 | package app.client.components.productos;
2 |
3 | import javax.swing.JPanel;
4 |
5 | import java.awt.Color;
6 |
7 | public class ProductosTemplate extends JPanel {
8 | private static final long serialVersionUID = 1L;
9 |
10 | private ProductosComponent productosComponent;
11 |
12 | public ProductosTemplate(ProductosComponent productosComponent) {
13 | this.productosComponent = productosComponent;
14 | this.productosComponent.getClass();
15 |
16 | this.setSize(850, 600);
17 | this.setBackground(Color.YELLOW);
18 | this.setLayout(null);
19 | this.setVisible(true);
20 | }
21 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/tarjeta/TarjetaComponent.java:
--------------------------------------------------------------------------------
1 | package app.client.components.tarjeta;
2 |
3 | import javax.swing.ImageIcon;
4 |
5 | public class TarjetaComponent {
6 | private TarjetaTemplate tarjetaTemplate;
7 |
8 | public TarjetaComponent(String titulo, ImageIcon iImagen, String parrafo) {
9 | tarjetaTemplate = new TarjetaTemplate(this, titulo, iImagen, parrafo);
10 | }
11 |
12 | public TarjetaTemplate getTarjetaTemplate() {
13 | return tarjetaTemplate;
14 | }
15 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/components/tarjeta/TarjetaTemplate.java:
--------------------------------------------------------------------------------
1 | package app.client.components.tarjeta;
2 |
3 | import app.services.ObjGraficosService;
4 | import app.services.RecursosService;
5 |
6 | import java.awt.Color;
7 | import java.awt.Image;
8 |
9 | import javax.swing.ImageIcon;
10 | import javax.swing.JLabel;
11 | import javax.swing.JPanel;
12 |
13 | public class TarjetaTemplate extends JPanel {
14 | private static final long serialVersionUID = 1L;
15 |
16 | // Declaración Servicios y dependencias
17 | private TarjetaComponent tarjetaComponent;
18 | private ObjGraficosService sObjGraficos;
19 | private RecursosService sRecursos;
20 |
21 | // Declaración Objetos Gráficos
22 | private JLabel lTitulo, lImagen, lParrafo;
23 |
24 | // Declaración Objetos Decoradores
25 | private ImageIcon iDimAux;
26 |
27 | public TarjetaTemplate(
28 | TarjetaComponent tarjetaComponent,
29 | String titulo,
30 | ImageIcon iImagen,
31 | String parrafo
32 | ) {
33 | this.tarjetaComponent = tarjetaComponent;
34 | this.tarjetaComponent.getClass();
35 | sObjGraficos = ObjGraficosService.getService();
36 | sRecursos = RecursosService.getService();
37 |
38 | iDimAux = new ImageIcon(
39 | iImagen.getImage()
40 | .getScaledInstance(246, 110, Image.SCALE_AREA_AVERAGING)
41 | );
42 | lImagen = sObjGraficos.construirJLabel(
43 | null,
44 | 5, 5, 246, 110,
45 | sRecursos.getCMano(),
46 | iDimAux,
47 | null, null, null, null,
48 | "c"
49 | );
50 | this.add(lImagen);
51 |
52 | this.lTitulo = sObjGraficos.construirJLabel(
53 | titulo,
54 | 15, 120, 180, 30,
55 | null, null,
56 | sRecursos.getFontTitulo(),
57 | null,
58 | sRecursos.getColorPrincipal(),
59 | null,
60 | "l"
61 | );
62 | this.add(lTitulo);
63 |
64 | lParrafo = sObjGraficos.construirJLabel(
65 | "" + parrafo + "
",
66 | 20, 120, 206, 120,
67 | null, null,
68 | sRecursos.getFontLigera(),
69 | null,
70 | sRecursos.getColorGrisOscuro(),
71 | null,
72 | "c"
73 | );
74 | this.add(lParrafo);
75 |
76 | this.setSize(256, 230);
77 | this.setBackground(Color.white);
78 | this.setLayout(null);
79 | this.setVisible(true);
80 | }
81 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/login/LoginComponent.java:
--------------------------------------------------------------------------------
1 | package app.client.login;
2 |
3 | import java.awt.event.ActionEvent;
4 | import java.awt.event.ActionListener;
5 |
6 | import javax.swing.JOptionPane;
7 |
8 | import app.client.vistaPrincipal.VistaPrincipalComponent;
9 |
10 | public class LoginComponent implements ActionListener {
11 | private LoginTemplate loginTemplate;
12 | private VistaPrincipalComponent vistaPrincipal;
13 |
14 | public LoginComponent() {
15 | this.loginTemplate = new LoginTemplate(this);
16 | }
17 |
18 | @Override
19 | public void actionPerformed(ActionEvent e) {
20 | if (e.getSource() == loginTemplate.getBEntrar()) {
21 | this.mostrarDatosUsuario();
22 | this.entrar();
23 | }
24 | if (e.getSource() == loginTemplate.getBCerrar())
25 | System.exit(0);
26 | if (e.getSource() == loginTemplate.getBOpcion1())
27 | JOptionPane.showMessageDialog(null, "Boton Opcion", "Advertencia", 1);
28 | if (e.getSource() == loginTemplate.getBRegistrarse())
29 | JOptionPane.showMessageDialog(null, "Boton Registro", "Advertencia", 1);
30 | }
31 |
32 | public void mostrarDatosUsuario() {
33 | String nombreUsuario = loginTemplate.getTNombreUsuario().getText();
34 | String claveUsuario = new String(loginTemplate.getTClaveUsuario().getPassword());
35 | String tipoUsuario = ((String) loginTemplate.getCbTipoUsuario().getSelectedItem());
36 | String check = "";
37 | if (loginTemplate.getCheckSi().isSelected())
38 | check = "si";
39 | if (loginTemplate.getCheckNo().isSelected())
40 | check = "no";
41 | JOptionPane.showMessageDialog(
42 | null,
43 | "Nombre Usuario: " + nombreUsuario +
44 | "\n Clave Usuario: " + claveUsuario +
45 | "\nTipo Usuario: " + tipoUsuario +
46 | "\n¿Notificaciones?: " + check,
47 | "Advertencia",
48 | 1
49 | );
50 | }
51 |
52 | public void entrar() {
53 | if (vistaPrincipal == null)
54 | this.vistaPrincipal = new VistaPrincipalComponent(this);
55 | else
56 | this.vistaPrincipal.getVistaPrincipalTemplate().setVisible(true);
57 | loginTemplate.setVisible(false);
58 | }
59 |
60 | public LoginTemplate getLoginTemplate() {
61 | return this.loginTemplate;
62 | }
63 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/login/LoginTemplate.java:
--------------------------------------------------------------------------------
1 | package app.client.login;
2 |
3 | import app.services.ObjGraficosService;
4 | import app.services.RecursosService;
5 |
6 | import java.awt.Color;
7 | import java.awt.Image;
8 |
9 | import javax.swing.ImageIcon;
10 | import javax.swing.JPanel;
11 | import javax.swing.JPasswordField;
12 | import javax.swing.JTextField;
13 | import javax.swing.ButtonGroup;
14 | import javax.swing.JButton;
15 | import javax.swing.JCheckBox;
16 | import javax.swing.JComboBox;
17 | import javax.swing.JFrame;
18 | import javax.swing.JLabel;
19 |
20 | public class LoginTemplate extends JFrame {
21 | private static final long serialVersionUID = 1L;
22 |
23 | // Declaración Objetos Gráficos
24 | private JPanel pDerecha, pIzquierda;
25 | private JLabel lTituloApp, lEslogan, lTituloLogin, lNotificaciones;
26 | private JLabel lFondo, lSvg1, lLogo, lUsuario, lClave, lFacebook, lTwitter, lYoutube;
27 | private JTextField tNombreUsuario;
28 | private JPasswordField tClaveUsuario;
29 | private JComboBox cbTipoUsuario;
30 | private JButton bEntrar, bCerrar, bRegistrarse, bOpcion1, bOpcion2, bOpcion3;
31 | private JCheckBox checkSi, checkNo;
32 | private ButtonGroup grupo;
33 |
34 | // Declaración objetos Decoradores
35 | private ImageIcon iFondo, iLogo;
36 | private ImageIcon iSvg1, iUsuario2, iClave2, iPunto1, iFacebook1, iTwitter1, iYoutube1, iDimAux;
37 |
38 | // Declaración servicios
39 | private ObjGraficosService sObjGraficos;
40 | private RecursosService sRecursos;
41 | private LoginComponent loginComponent;
42 |
43 | public LoginTemplate(LoginComponent loginComponent){
44 | this.loginComponent = loginComponent;
45 | sObjGraficos = ObjGraficosService.getService();
46 | sRecursos = RecursosService.getService();
47 |
48 | this.crearObjetosDecoradores();
49 | this.crearJPanels();
50 | this.crearJTextFields();
51 | this.crearJPasswordFields();
52 | this.crearJComboBoxes();
53 | this.crearJButtons();
54 | this.crearJCheckBoxes();
55 | this.crearJLabels();
56 |
57 | setLayout(null);
58 | setDefaultCloseOperation(EXIT_ON_CLOSE);
59 | setSize(1000, 500);
60 | setLocationRelativeTo(this);
61 | setUndecorated(true);
62 | setLayout(null);
63 | setVisible(true);
64 | }
65 |
66 | public void crearObjetosDecoradores() {
67 | iFondo = new ImageIcon("Clase8/resources/images/fondo.png");
68 | iLogo = new ImageIcon("Clase8/resources/images/logo.png");
69 | iUsuario2 = new ImageIcon("Clase8/resources/images/usuario2.png");
70 | iClave2 = new ImageIcon("Clase8/resources/images/clave2.png");
71 | iPunto1 = new ImageIcon("Clase8/resources/images/punto1.png");
72 | iFacebook1 = new ImageIcon("Clase8/resources/images/facebook1.png");
73 | iTwitter1 = new ImageIcon("Clase8/resources/images/twitter1.png");
74 | iYoutube1 = new ImageIcon("Clase8/resources/images/youtube1.png");
75 | iSvg1 = new ImageIcon("Clase8/resources/images/imagen1.png");
76 | }
77 |
78 | public void crearJPanels() {
79 | pIzquierda = sObjGraficos.construirJPanel(0, 0, 600, 500, Color.WHITE, null);
80 | this.add(pIzquierda);
81 |
82 | pDerecha = sObjGraficos.construirJPanel(600, 0, 400, 500, Color.WHITE, null);
83 | this.add(pDerecha);
84 | }
85 |
86 | public void crearJTextFields() {
87 | tNombreUsuario = sObjGraficos.construirJTextField(
88 | "Nombre Usuario",
89 | (pDerecha.getWidth() - 260) / 2, 130, 260, 40,
90 | null,
91 | Color.WHITE,
92 | sRecursos.getColorPrincipal(),
93 | sRecursos.getColorGrisOscuro(),
94 | sRecursos.getBInferiorAzul(),
95 | "c"
96 | );
97 | pDerecha.add(tNombreUsuario);
98 | }
99 |
100 | public void crearJButtons() {
101 | // BOTÓN ENTRAR-----------------------------------------------------------------------------
102 | bEntrar = sObjGraficos.construirJButton(
103 | "Entrar",
104 | (pDerecha.getWidth() - 250) / 2, 330, 250, 45,
105 | sRecursos.getCMano(),
106 | null, null,
107 | sRecursos.getColorPrincipal(),
108 | Color.WHITE,
109 | null,
110 | "c",
111 | true
112 | );
113 | bEntrar.addActionListener(loginComponent);
114 | pDerecha.add(bEntrar);
115 |
116 | // BOTÓN REGISTRARSE-----------------------------------------------------------------------
117 | bRegistrarse = sObjGraficos.construirJButton(
118 | "Registrarse",
119 | 240, 460, 145, 35,
120 | sRecursos.getCMano(),
121 | null, null,
122 | sRecursos.getColorPrincipal(),
123 | Color.WHITE,
124 | null,
125 | "c",
126 | true
127 | );
128 | bRegistrarse.addActionListener(loginComponent);
129 | pDerecha.add(bRegistrarse);
130 |
131 | // BOTÓN CERRAR-----------------------------------------------------------------------------
132 | iDimAux = new ImageIcon(
133 | sRecursos.getICerrar().getImage()
134 | .getScaledInstance(30, 30, Image.SCALE_AREA_AVERAGING)
135 | );
136 | bCerrar = sObjGraficos.construirJButton(
137 | null,
138 | 350, 10, 45, 30,
139 | sRecursos.getCMano(),
140 | iDimAux,
141 | null, null, null, null,
142 | "c",
143 | false
144 | );
145 | bCerrar.addActionListener(loginComponent);
146 | pDerecha.add(bCerrar);
147 |
148 | iDimAux = new ImageIcon(
149 | iPunto1.getImage()
150 | .getScaledInstance(20, 20, Image.SCALE_AREA_AVERAGING)
151 | );
152 |
153 | // BOTÓN OPCIÓN 1-----------------------------------------------------------------------------
154 | bOpcion1 = sObjGraficos.construirJButton(
155 | null,
156 | 10, 220, 30, 20,
157 | sRecursos.getCMano(),
158 | iDimAux,
159 | null, null, null, null,
160 | "c",
161 | false
162 | );
163 | bOpcion1.addActionListener(loginComponent);
164 | pIzquierda.add(bOpcion1);
165 |
166 | // BOTÓN OPCIÓN 2-----------------------------------------------------------------------------
167 | bOpcion2 = sObjGraficos.construirJButton(
168 | null,
169 | 10, 250, 30, 20,
170 | sRecursos.getCMano(),
171 | iDimAux,
172 | null, null, null, null,
173 | "c",
174 | false
175 | );
176 | pIzquierda.add(bOpcion2);
177 |
178 | // BOTÓN OPCIÓN 3-----------------------------------------------------------------------------
179 | bOpcion3 = sObjGraficos.construirJButton(
180 | null,
181 | 10, 280, 30, 20,
182 | sRecursos.getCMano(),
183 | iDimAux,
184 | null, null, null, null,
185 | "c",
186 | false
187 | );
188 | pIzquierda.add(bOpcion3);
189 | }
190 |
191 | public void crearJLabels() {
192 | // LABEL LOGO-----------------------------------------------------------------------------
193 | iDimAux = new ImageIcon(
194 | iLogo.getImage()
195 | .getScaledInstance(40, 40, Image.SCALE_AREA_AVERAGING)
196 | );
197 | lLogo = sObjGraficos.construirJLabel(
198 | null,
199 | 50, 20, 40, 40,
200 | sRecursos.getCMano(),
201 | iDimAux,
202 | null, null, null, null,
203 | "c"
204 | );
205 | pIzquierda.add(lLogo);
206 |
207 | // LABEL TITULO APP-----------------------------------------------------------------------------
208 | lTituloApp = sObjGraficos.construirJLabel(
209 | "Login de Usuario",
210 | 100, 20, 220, 30,
211 | null, null,
212 | sRecursos.getFontTPrincipal(),
213 | null,
214 | Color.WHITE,
215 | null,
216 | "c"
217 | );
218 | pIzquierda.add(lTituloApp);
219 |
220 | // LABEL SVG-----------------------------------------------------------------------------
221 | iDimAux = new ImageIcon(
222 | iSvg1.getImage()
223 | .getScaledInstance(500, 345, Image.SCALE_AREA_AVERAGING)
224 | );
225 | lSvg1 = sObjGraficos.construirJLabel(
226 | null,
227 | 100, 100, 500, 345,
228 | null,
229 | iDimAux,
230 | null, null, null, null,
231 | "c"
232 | );
233 | pIzquierda.add(lSvg1);
234 |
235 | // LABEL ESLOGAN-----------------------------------------------------------------------------
236 | lEslogan = sObjGraficos.construirJLabel(
237 | "Te ayudamos en todo",
238 | (pDerecha.getWidth() - 130) / 2, 60, 130, 20,
239 | null, null,
240 | sRecursos.getFontSubtitulo(),
241 | null,
242 | sRecursos.getColorGrisOscuro(),
243 | null,
244 | "c"
245 | );
246 | pDerecha.add(lEslogan);
247 |
248 | // LABEL TITULO LOGIN-----------------------------------------------------------------------------
249 | lTituloLogin = sObjGraficos.construirJLabel(
250 | "Registra tus Datos",
251 | (pDerecha.getWidth() - 150) / 2, 80, 150, 30,
252 | null, null,
253 | sRecursos.getFontTitulo(),
254 | null,
255 | sRecursos.getColorGrisOscuro(),
256 | null,
257 | "c"
258 | );
259 | pDerecha.add(lTituloLogin);
260 |
261 | // LABEL NOTIFICACIONES-----------------------------------------------------------------------------
262 | lNotificaciones = sObjGraficos.construirJLabel(
263 | "¿Recibir Notificaciones?",
264 | (pDerecha.getWidth() - 140) / 2, 400, 140, 20,
265 | null, null,
266 | sRecursos.getFontSubtitulo(),
267 | null,
268 | sRecursos.getColorGrisOscuro(),
269 | null,
270 | "c"
271 | );
272 | pDerecha.add(lNotificaciones);
273 |
274 | // LABEL USUARIO-----------------------------------------------------------------------------
275 | iDimAux = new ImageIcon(
276 | iUsuario2.getImage()
277 | .getScaledInstance(30, 30, Image.SCALE_AREA_AVERAGING)
278 | );
279 | lUsuario = sObjGraficos.construirJLabel(
280 | null,
281 | 40, 140, 30, 30,
282 | null,
283 | iDimAux,
284 | null, null, null, null,
285 | "c"
286 | );
287 | pDerecha.add(lUsuario);
288 |
289 | // LABEL CLAVE-----------------------------------------------------------------------------
290 | iDimAux = new ImageIcon(
291 | iClave2.getImage()
292 | .getScaledInstance(30, 30, Image.SCALE_AREA_AVERAGING)
293 | );
294 | lClave = sObjGraficos.construirJLabel(
295 | null,
296 | 40, 270, 30, 30,
297 | null,
298 | iDimAux,
299 | null, null, null, null,
300 | "c"
301 | );
302 | pDerecha.add(lClave);
303 |
304 | // LABEL FACEBOOK-----------------------------------------------------------------------------
305 | iDimAux = new ImageIcon(
306 | iFacebook1.getImage()
307 | .getScaledInstance(30, 30, Image.SCALE_AREA_AVERAGING)
308 | );
309 | lFacebook = sObjGraficos.construirJLabel(
310 | null,
311 | 20, 460, 30, 30,
312 | sRecursos.getCMano(),
313 | iDimAux,
314 | null, null, null, null,
315 | "c"
316 | );
317 | pIzquierda.add(lFacebook);
318 |
319 | // LABEL TWITTER-----------------------------------------------------------------------------
320 | iDimAux = new ImageIcon(
321 | iTwitter1.getImage()
322 | .getScaledInstance(30, 30, Image.SCALE_AREA_AVERAGING)
323 | );
324 | lTwitter = sObjGraficos.construirJLabel(
325 | null,
326 | 60, 460, 30, 30,
327 | sRecursos.getCMano(),
328 | iDimAux,
329 | null, null, null, null,
330 | "c"
331 | );
332 | pIzquierda.add(lTwitter);
333 |
334 | // LABEL YOUTUBE-----------------------------------------------------------------------------
335 | iDimAux = new ImageIcon(
336 | iYoutube1.getImage()
337 | .getScaledInstance(30, 30, Image.SCALE_AREA_AVERAGING)
338 | );
339 | lYoutube = sObjGraficos.construirJLabel(
340 | null,
341 | 100, 460, 30, 30,
342 | sRecursos.getCMano(),
343 | iDimAux,
344 | null, null, null, null,
345 | "c"
346 | );
347 | pIzquierda.add(lYoutube);
348 |
349 | // LABEL FONDO-----------------------------------------------------------------------------
350 | iDimAux = new ImageIcon(
351 | iFondo.getImage()
352 | .getScaledInstance(600, 600, Image.SCALE_AREA_AVERAGING)
353 | );
354 | lFondo = sObjGraficos.construirJLabel(
355 | null,
356 | 0, 0, 600, 600,
357 | null,
358 | iDimAux,
359 | null, null, null, null,
360 | "c"
361 | );
362 | pIzquierda.add(lFondo);
363 | }
364 |
365 | public void crearJPasswordFields() {
366 | tClaveUsuario = sObjGraficos.construirJPasswordField(
367 | "Clave Usuario",
368 | (pDerecha.getWidth() - 260) / 2, 260, 260, 40,
369 | null, null,
370 | sRecursos.getColorPrincipal(),
371 | sRecursos.getColorGrisOscuro(),
372 | sRecursos.getBInferiorAzul(),
373 | "c"
374 | );
375 | pDerecha.add(tClaveUsuario);
376 | }
377 |
378 | public void crearJComboBoxes() {
379 | cbTipoUsuario = sObjGraficos.construirJComboBox(
380 | "Cliente_Cajero_Administrador",
381 | (pDerecha.getWidth() - 220) / 2, 210, 220, 30,
382 | null,
383 | Color.WHITE,
384 | sRecursos.getColorPrincipal(),
385 | "c"
386 | );
387 | pDerecha.add(cbTipoUsuario);
388 | }
389 |
390 | public void crearJCheckBoxes() {
391 | checkSi = sObjGraficos.construirJCheckBox(
392 | "Si",
393 | (pDerecha.getWidth() - 45) / 2 - 15, 375, 45, 25,
394 | sRecursos.getCMano(),
395 | null, null
396 | );
397 | pDerecha.add(checkSi);
398 |
399 | checkNo = sObjGraficos.construirJCheckBox(
400 | "No",
401 | (pDerecha.getWidth() + 45) / 2 - 15, 375, 45, 25,
402 | sRecursos.getCMano(),
403 | null, null
404 | );
405 | pDerecha.add(checkNo);
406 |
407 | grupo = new ButtonGroup();
408 | grupo.add(checkSi);
409 | grupo.add(checkNo);
410 | }
411 |
412 | public JButton getBCerrar() { return this.bCerrar; }
413 |
414 | public JButton getBEntrar() { return this.bEntrar; }
415 |
416 | public JButton getBRegistrarse() { return this.bRegistrarse; }
417 |
418 | public JButton getBOpcion1() { return this.bOpcion1; }
419 |
420 | public JTextField getTNombreUsuario() { return this.tNombreUsuario; }
421 |
422 | public JPasswordField getTClaveUsuario() { return this.tClaveUsuario; }
423 |
424 | public JComboBox getCbTipoUsuario() { return this.cbTipoUsuario; }
425 |
426 | public JCheckBox getCheckSi() { return this.checkSi; }
427 |
428 | public JCheckBox getCheckNo() { return this.checkNo; }
429 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/vistaPrincipal/VistaPrincipalComponent.java:
--------------------------------------------------------------------------------
1 | package app.client.vistaPrincipal;
2 |
3 | import app.client.components.amigos.AmigosComponent;
4 | import app.client.components.barraTitulo.BarraTituloComponent;
5 | import app.client.components.configuraciones.ConfiguracionesComponent;
6 | import app.client.components.inicio.InicioComponent;
7 | import app.client.components.navegacionUsuario.NavegacionUsuarioComponent;
8 | import app.client.components.perfil.PerfilComponent;
9 | import app.client.components.productos.ProductosComponent;
10 | import app.client.login.LoginComponent;
11 |
12 | import java.awt.Frame;
13 |
14 | public class VistaPrincipalComponent {
15 | private VistaPrincipalTemplate vistaPrincipalTemplate;
16 |
17 | // Declaración Componentes
18 | private BarraTituloComponent barraTituloComponent;
19 | private NavegacionUsuarioComponent navegacionUsuarioComponent;
20 | private InicioComponent inicioComponent;
21 | private PerfilComponent perfilComponent;
22 | private AmigosComponent amigosComponent;
23 | private ProductosComponent productosComponent;
24 | private ConfiguracionesComponent configuracionesComponent;
25 | private LoginComponent loginComponent;
26 |
27 | public VistaPrincipalComponent(LoginComponent loginComponent) {
28 | this.loginComponent = loginComponent;
29 | this.vistaPrincipalTemplate = new VistaPrincipalTemplate(this);
30 | this.barraTituloComponent = new BarraTituloComponent(this);
31 | this.navegacionUsuarioComponent = new NavegacionUsuarioComponent(this);
32 | this.inicioComponent = new InicioComponent();
33 |
34 | vistaPrincipalTemplate.getPNavegacion()
35 | .add(navegacionUsuarioComponent.getNavegacionUsuarioTemplate());
36 | vistaPrincipalTemplate.getPBarra()
37 | .add(barraTituloComponent.getBarraTituloTemplate());
38 | vistaPrincipalTemplate.getPPrincipal()
39 | .add(inicioComponent.getInicioTemplate());
40 | }
41 |
42 | public VistaPrincipalTemplate getVistaPrincipalTemplate() {
43 | return this.vistaPrincipalTemplate;
44 | }
45 |
46 | public void mostrarComponente(String comando) {
47 | vistaPrincipalTemplate.getPPrincipal().removeAll();
48 | switch (comando) {
49 | case "Inicio":
50 | vistaPrincipalTemplate.getPPrincipal()
51 | .add(inicioComponent.getInicioTemplate());
52 | break;
53 | case "Perfil":
54 | if (this.perfilComponent == null)
55 | this.perfilComponent = new PerfilComponent();
56 | vistaPrincipalTemplate.getPPrincipal()
57 | .add(perfilComponent.getPerfilTemplate());
58 | break;
59 | case "Amigos":
60 | if (this.amigosComponent == null)
61 | this.amigosComponent = new AmigosComponent();
62 | vistaPrincipalTemplate.getPPrincipal()
63 | .add(amigosComponent.getAmigosTemplate());
64 | break;
65 | case "Productos":
66 | if (this.productosComponent == null)
67 | this.productosComponent = new ProductosComponent();
68 | vistaPrincipalTemplate.getPPrincipal()
69 | .add(productosComponent.getProductosTemplate());
70 | break;
71 | case "Configuraciones":
72 | if (this.configuracionesComponent == null)
73 | this.configuracionesComponent = new ConfiguracionesComponent();
74 | vistaPrincipalTemplate.getPPrincipal()
75 | .add(configuracionesComponent.getConfiguracionesTemplate());
76 | break;
77 | case "Cerrar Sesión":
78 | this.loginComponent.getLoginTemplate().setVisible(true);
79 | this.vistaPrincipalTemplate.setVisible(false);
80 | break;
81 | }
82 | vistaPrincipalTemplate.repaint();
83 | }
84 |
85 | public void cerrar() {
86 | System.exit(0);
87 | }
88 |
89 | public void minimizar() {
90 | this.vistaPrincipalTemplate.setExtendedState(Frame.ICONIFIED);
91 | }
92 | }
--------------------------------------------------------------------------------
/Clase8/src/app/client/vistaPrincipal/VistaPrincipalTemplate.java:
--------------------------------------------------------------------------------
1 | package app.client.vistaPrincipal;
2 |
3 | import javax.swing.JFrame;
4 | import javax.swing.JPanel;
5 |
6 | import app.services.ObjGraficosService;
7 |
8 | public class VistaPrincipalTemplate extends JFrame {
9 | private static final long serialVersionUID = 1L;
10 |
11 | // Declaración Servicios y Objetos
12 | private ObjGraficosService sObjGraficos;
13 | private VistaPrincipalComponent vistaPrincipalComponent;
14 |
15 | // Declaración Objetos Gráficos
16 | private JPanel pNavegacion, pBarra, pPrincipal;
17 |
18 | public VistaPrincipalTemplate(VistaPrincipalComponent vistaPrincipalComponent) {
19 | this.vistaPrincipalComponent = vistaPrincipalComponent;
20 | this.vistaPrincipalComponent.getClass();
21 | sObjGraficos = ObjGraficosService.getService();
22 |
23 | this.crearJPanels();
24 |
25 | setDefaultCloseOperation(EXIT_ON_CLOSE);
26 | setSize(1100, 650);
27 | setLocationRelativeTo(this);
28 | setLayout(null);
29 | setUndecorated(true);
30 | setVisible(true);
31 | }
32 |
33 | public void crearJPanels() {
34 | pNavegacion = sObjGraficos.construirJPanel(0, 0, 250, 700, null, null);
35 | this.add(pNavegacion);
36 |
37 | pBarra = sObjGraficos.construirJPanel(250, 0, 850, 50, null, null);
38 | this.add(pBarra);
39 |
40 | pPrincipal = sObjGraficos.construirJPanel(250, 50, 850, 600, null, null);
41 | this.add(pPrincipal);
42 | }
43 |
44 | public JPanel getPNavegacion() { return this.pNavegacion; }
45 |
46 | public JPanel getPPrincipal() { return this.pPrincipal; }
47 |
48 | public JPanel getPBarra() { return this.pBarra; }
49 | }
--------------------------------------------------------------------------------
/Clase8/src/app/services/ObjGraficosService.java:
--------------------------------------------------------------------------------
1 | package app.services;
2 |
3 | import java.awt.Color;
4 | import java.awt.Component;
5 | import java.awt.Cursor;
6 | import java.awt.Font;
7 |
8 | import javax.swing.ImageIcon;
9 | import javax.swing.JButton;
10 | import javax.swing.JCheckBox;
11 | import javax.swing.JComboBox;
12 | import javax.swing.JLabel;
13 | import javax.swing.JPanel;
14 | import javax.swing.JPasswordField;
15 | import javax.swing.JRadioButton;
16 | import javax.swing.JScrollPane;
17 | import javax.swing.JTextArea;
18 | import javax.swing.JTextField;
19 | import javax.swing.SwingConstants;
20 | import javax.swing.border.Border;
21 |
22 | /** @author Cristian Felipe Patiño Cáceres Github: CrissUD*/
23 |
24 | public class ObjGraficosService {
25 | private JPanel panel;
26 | private JScrollPane panelScroll;
27 | private JButton button;
28 | private JRadioButton radioButton;
29 | private JCheckBox check;
30 | private JLabel label;
31 | private JTextField textField;
32 | private JPasswordField passwordField;
33 | private JTextArea textArea;
34 | private JComboBox comboBox;
35 |
36 | private static ObjGraficosService servicio;
37 |
38 | private ObjGraficosService() {}
39 |
40 | /**
41 | * Descripción: Esta función se encarga de construir un objeto gráfico tipo JPanel.
42 | * @param x (int): Posición inicial en pixeles sobre el eje X.
43 | * @param y (int): Posición inicial en pixeles sobre el eje Y.
44 | * @param ancho (int): Tamaño sobre el eje X en pixeles del panel.
45 | * @param alto (int): Tamaño sobre el eje Y en pixeles del panel.
46 | * @param colorFondo (Color): Color de fondo o Background del panel.
47 | * @param borde (Border): Borde del panel.
48 | * @return panel (JPanel): Objeto gráfico tipo JPanel.
49 | * @throws null : Si construye un JPanel sin color de fondo o borde envíe un [null] como parámetro.
50 | */
51 | public JPanel construirJPanel(
52 | int x, int y, int ancho, int alto, Color colorFondo, Border borde
53 | ) {
54 | panel = new JPanel();
55 | panel.setLocation(x, y);
56 | panel.setSize(ancho, alto);
57 | panel.setLayout(null);
58 | panel.setBackground(colorFondo);
59 | panel.setBorder(borde);
60 | return panel;
61 | }
62 |
63 | /**
64 | * Descripción: Esta función se encarga de construir un objeto gráfico tipo JScrollPane.
65 | * @param componente (Component): Objeto gráfico que contiene el JScrollPane.
66 | * @param x (int): Posición inicial en pixeles sobre el eje X.
67 | * @param y (int): Posición inicial en pixeles sobre el eje Y.
68 | * @param ancho (int): Tamaño sobre el eje X en pixeles del JScrollPane.
69 | * @param alto (int): Tamaño sobre el eje Y en pixeles del JScrollPane.
70 | * @param colorFondo (Color): Color de fondo o Background del JScrollPane.
71 | * @param borde (Border): Borde del JScrollPane.
72 | * @return panelScroll (JPaneScroll): Objeto gráfico tipo JPaneScroll.
73 | * @throws null : Si construye un JScrollPane sin color de fondo o borde envíe un [null] como parámetro.
74 | */
75 | public JScrollPane construirPanelBarra(
76 | Component componente, int x, int y, int ancho, int alto, Color colorFondo, Border borde
77 | ) {
78 | panelScroll = new JScrollPane(componente);
79 | panelScroll.setLocation(x, y);
80 | panelScroll.setSize(ancho, alto);
81 | panelScroll.getViewport().setBackground(colorFondo);
82 | panelScroll.setBorder(borde);
83 | return panelScroll;
84 | }
85 |
86 | /**
87 | * Descripción: Esta función se encarga de construir un objeto gráfico tipo JButton.
88 | * @param texto (String): Texto que contiene el botón.
89 | * @param x (int): Posición inicial en pixeles sobre el eje X.
90 | * @param y (int): Posición inicial en pixeles sobre el eje Y.
91 | * @param ancho (int): Tamaño sobre el eje X en pixeles del botón.
92 | * @param alto (int): Tamaño sobre el eje Y en pixeles del botón.
93 | * @param cursor (Cursor): Tipo de cursor que se muestra al pasar sobre el botón.
94 | * @param imagen (ImageIcon): Imágen que contiene el Botón.
95 | * @param fuente (Font): Tipo de fuente que tendrá el texto del botón.
96 | * @param colorFondo (Color): Color de fondo o Background del botón.
97 | * @param colorFuente (Color): Color de la letra o ForeGround del botón.
98 | * @param borde (Border): Borde del botón.
99 | * @param direccion (String): Dirección de los elementos dentro del botón siendo:
100 | *
101 | * - 'c' (CENTER): Contenido centrado (por defecto).
102 | * - 't' (TOP): Contenido centrado con texto arriba de una imágen.
103 | * - 'l' (LEFT): Contenido en la izquierda [Si tiene imágen y texto la imágen se posiciona primero].
104 | * - 'r' (RIGHT): Contenido en la derecha [Si tiene imágen y texto el texto se posiciona primero].
105 | * - 'b' (BOTTOM): Contenido centrado con texto abajo de una imágen.
106 | *
107 | * @param esSolido (boolean): Booleano que indica si el boton tiene color de fondo (true) o tiene fondo transparente (false).
108 | * @return boton (JButton): Objeto gráfico tipo JButton.
109 | * @throws null : Si construye un JButton sin texto, cursor, imagen, fuente, colorFondo, colorFuente o borde envíe un [null] como parámetro.
110 | */
111 | public JButton construirJButton(
112 | String texto, int x, int y, int ancho, int alto, Cursor cursor, ImageIcon imagen, Font fuente,
113 | Color colorFondo, Color colorFuente, Border borde, String direccion, boolean esSolido
114 | ) {
115 | button = new JButton(texto);
116 | button.setLocation(x, y);
117 | button.setSize(ancho, alto);
118 | button.setFocusable(false);
119 | button.setCursor(cursor);
120 | button.setFont(fuente);
121 | button.setBackground(colorFondo);
122 | button.setForeground(colorFuente);
123 | button.setIcon(imagen);
124 | button.setBorder(borde);
125 | button.setContentAreaFilled(esSolido);
126 | switch (direccion) {
127 | case "l":
128 | button.setHorizontalAlignment(SwingConstants.LEFT);
129 | break;
130 | case "r":
131 | button.setHorizontalAlignment(SwingConstants.RIGHT);
132 | button.setHorizontalTextPosition(SwingConstants.LEFT);
133 | break;
134 | case "t":
135 | button.setVerticalTextPosition(SwingConstants.TOP);
136 | button.setHorizontalTextPosition(SwingConstants.CENTER);
137 | break;
138 | case "b":
139 | button.setVerticalTextPosition(SwingConstants.BOTTOM);
140 | button.setHorizontalTextPosition(SwingConstants.CENTER);
141 | break;
142 | default:
143 | break;
144 | }
145 | return button;
146 | }
147 |
148 | /**
149 | * Descripción: Esta función se encarga de construir un objeto gráfico tipo JRaddioButton.
150 | * @param texto (String): Texto que contiene el radioButton.
151 | * @param x (int): Posición inicial en pixeles sobre el eje X.
152 | * @param y (int): Posición inicial en pixeles sobre el eje Y.
153 | * @param ancho (int): Tamaño sobre el eje X en pixeles del radioButton.
154 | * @param alto (int): Tamaño sobre el eje Y en pixeles del radioButton.
155 | * @param cursor (Cursor): Tipo de cursor que se muestra al pasar sobre el radioButton.
156 | * @param fuente (Font): Tipo de fuente que tendrá el texto del radioButton.
157 | * @param colorFuente (Color): Color de la letra o ForeGround del radioButton.
158 | * @return radioButton (JButton): Objeto gráfico tipo JRadioButton.
159 | * @throws null : Si construye un JRadioButton sin texto, cursor, fuente, o colorFuente envíe un [null] como parámetro.
160 | */
161 | public JRadioButton construirJRadioButton(
162 | String texto, int x, int y, int ancho, int alto, Cursor cursor, Font fuente, Color colorFuente
163 | ) {
164 | radioButton = new JRadioButton(texto);
165 | radioButton.setLocation(x, y);
166 | radioButton.setSize(ancho, alto);
167 | radioButton.setFocusable(false);
168 | radioButton.setBackground(null);
169 | radioButton.setCursor(cursor);
170 | radioButton.setFont(fuente);
171 | radioButton.setForeground(colorFuente);
172 | return radioButton;
173 | }
174 |
175 | /**
176 | * Descripción: Esta función se encarga de construir un objeto gráfico tipo JCheckBox.
177 | * @param texto (String): Texto que contiene el checkBox.
178 | * @param x (int): Posición inicial en pixeles sobre el eje X.
179 | * @param y (int): Posición inicial en pixeles sobre el eje Y.
180 | * @param ancho (int): Tamaño sobre el eje X en pixeles del checkBox.
181 | * @param alto (int): Tamaño sobre el eje Y en pixeles del checkBox.
182 | * @param cursor (Cursor): Tipo de cursor que se muestra al pasar sobre el checkBox.
183 | * @param fuente (Font): Tipo de fuente que tendrá el texto del checkBox.
184 | * @param colorFuente (Color): Color de la letra o ForeGround del checkBox.
185 | * @return check (JCheckBox): Objeto gráfico tipo JCheckBox.
186 | * @throws null : Si construye un JCheckBox sin texto, cursor, fuente, o colorFuente envíe un [null] como parámetro.
187 | */
188 | public JCheckBox construirJCheckBox(
189 | String texto, int x, int y, int ancho, int alto, Cursor cursor, Font fuente, Color colorFuente
190 | ) {
191 | check = new JCheckBox(texto);
192 | check.setLocation(x, y);
193 | check.setSize(ancho, alto);
194 | check.setFocusable(false);
195 | check.setBackground(null);
196 | check.setCursor(cursor);
197 | check.setFont(fuente);
198 | check.setForeground(colorFuente);
199 | return check;
200 | }
201 |
202 | /**
203 | * Descripción: Esta función se encarga de construir un objeto gráfico tipo JLabel.
204 | * @param texto (String): Texto que contiene el label.
205 | * @param x (int): Posición inicial en pixeles sobre el eje X.
206 | * @param y (int): Posición inicial en pixeles sobre el eje Y.
207 | * @param ancho (int): Tamaño sobre el eje X en pixeles del label.
208 | * @param alto (int): Tamaño sobre el eje Y en pixeles del label.
209 | * @param cursor (Cursor): Tipo de cursor que se muestra al pasar sobre el label.
210 | * @param imagen (ImageIcon): Imagen que contiene el label.
211 | * @param fuente (Font): Tipo de fuente que tendrá el texto del label.
212 | * @param colorFondo (Color): Color de fondo o Background del label.
213 | * @param colorFuente (Color): Color de la letra o ForeGround del label.
214 | * @param borde (Border): Borde del label.
215 | * @param direccion (String): Dirección de los elementos dentro del label siendo:
216 | *
217 | * - 'l' (LEFT): Contenido en la izquierda (por defecto).
218 | * - 'c' (CENTER): Contenido centrado [Si tiene imágen y texto la imágen se posiciona primero].
219 | * - 't' (TOP): Contenido centrado con texto arriba de una imágen.
220 | * - 'r' (RIGHT): Contenido en la derecha [Si tiene imágen y texto el texto se posiciona primero].
221 | * - 'b' (BOTTOM): Contenido centrado con texto abajo de una imágen.
222 | *
223 | * @return label (JLabel): Objeto gráfico tipo JLabel.
224 | * @throws null : Si construye un JLabel sin texto, cursor, imagen, fuente, colorFondo, colorFuente o borde envíe un [null] como parámetro.
225 | */
226 | public JLabel construirJLabel(
227 | String texto, int x, int y, int ancho, int alto, Cursor cursor, ImageIcon imagen,
228 | Font fuente, Color colorFondo, Color colorFuente, Border borde, String direccion
229 | ) {
230 | label = new JLabel(texto);
231 | label.setLocation(x, y);
232 | label.setSize(ancho, alto);
233 | label.setForeground(colorFuente);
234 | label.setFont(fuente);
235 | label.setCursor(cursor);
236 | label.setIcon(imagen);
237 | label.setBorder(borde);
238 | if (colorFondo != null) {
239 | label.setOpaque(true);
240 | label.setBackground(colorFondo);
241 | }
242 | switch (direccion) {
243 | case "c":
244 | label.setHorizontalAlignment(SwingConstants.CENTER);
245 | break;
246 | case "r":
247 | label.setHorizontalAlignment(SwingConstants.RIGHT);
248 | label.setHorizontalTextPosition(SwingConstants.LEFT);
249 | break;
250 | case "t":
251 | label.setHorizontalAlignment(SwingConstants.CENTER);
252 | label.setVerticalTextPosition(SwingConstants.TOP);
253 | label.setHorizontalTextPosition(SwingConstants.CENTER);
254 | break;
255 | case "b":
256 | label.setHorizontalAlignment(SwingConstants.CENTER);
257 | label.setVerticalTextPosition(SwingConstants.BOTTOM);
258 | label.setHorizontalTextPosition(SwingConstants.CENTER);
259 | break;
260 | default:
261 | break;
262 | }
263 | return label;
264 | }
265 |
266 | /**
267 | * Descripción: Esta función se encarga de construir un objeto gráfico tipo JTextField.
268 | * @param texto (String): Texto que contiene el textField.
269 | * @param x (int): Posición inicial en pixeles sobre el eje X.
270 | * @param y (int): Posición inicial en pixeles sobre el eje Y.
271 | * @param ancho (int): Tamaño sobre el eje X en pixeles del textField.
272 | * @param alto (int): Tamaño sobre el eje Y en pixeles del textField.
273 | * @param fuente (Font): Tipo de fuente que tendrá el texto del textField.
274 | * @param colorFondo (Color): Color de fondo o Background del textField.
275 | * @param colorFuente (Color): Color de la letra o ForeGround del textField.
276 | * @param colorCaret (Color): Color del Caret del textField.
277 | * @param borde (Border): Borde del textField.
278 | * @param direccion (String): Dirección de los elementos dentro del textField siendo:
279 | *
280 | * - 'l' (LEFT): Contenido en la izquierda (por defecto).
281 | * - 'c' (CENTER): Contenido centrado.
282 | * - 'r' (RIGHT): Contenido en la derecha.
283 | *
284 | * @return textField (JTextField): Objeto gráfico tipo JTextField.
285 | * @throws null : Si construye un JTextField sin texto, fuente, colorFondo, colorFuente, colorCaret o borde envíe un [null] como parámetro.
286 | */
287 | public JTextField construirJTextField(
288 | String texto, int x, int y, int ancho, int alto, Font fuente, Color colorFondo,
289 | Color colorFuente, Color colorCaret, Border borde, String direccion
290 | ) {
291 | textField = new JTextField();
292 | textField.setLocation(x, y);
293 | textField.setSize(ancho, alto);
294 | textField.setText(texto);
295 | textField.setForeground(colorFuente);
296 | textField.setBackground(colorFondo);
297 | textField.setCaretColor(colorCaret);
298 | textField.setFont(fuente);
299 | textField.setBorder(borde);
300 | switch (direccion) {
301 | case "c":
302 | textField.setHorizontalAlignment(SwingConstants.CENTER);
303 | break;
304 | case "r":
305 | textField.setHorizontalAlignment(SwingConstants.RIGHT);
306 | break;
307 | default:
308 | break;
309 | }
310 | return textField;
311 | }
312 |
313 | /**
314 | * Descripción: Esta función se encarga de construir un objeto gráfico tipo JPasswordField.
315 | * @param texto (String): Texto que contiene el passwordField.
316 | * @param x (int): Posición inicial en pixeles sobre el eje X.
317 | * @param y (int): Posición inicial en pixeles sobre el eje Y.
318 | * @param ancho (int): Tamaño sobre el eje X en pixeles del passwordField.
319 | * @param alto (int): Tamaño sobre el eje Y en pixeles del passwordField.
320 | * @param fuente (Font): Tipo de fuente que tendrá el texto del passwordField.
321 | * @param colorFondo (Color): Color de fondo o Background del passwordField.
322 | * @param colorFuente (Color): Color de la letra o ForeGround del passwordField.
323 | * @param colorCaret (Color): Color del Caret del passwordField.
324 | * @param borde (Border): Borde del passwordField.
325 | * @param direccion (String): Dirección de los elementos dentro del passwordField siendo:
326 | *
327 | * - 'l' (LEFT): Contenido en la izquierda (por defecto).
328 | * - 'c' (CENTER): Contenido centrado.
329 | * - 'r' (RIGHT): Contenido en la derecha.
330 | *
331 | * @return passwordField (JPasswordField): Objeto gráfico tipo JPasswordField.
332 | * @throws null : Si construye un JPasswordField sin texto, fuente, colorFondo, colorFuente, colorCaret o borde envíe un [null] como parámetro.
333 | */
334 | public JPasswordField construirJPasswordField(
335 | String texto, int x, int y, int ancho, int alto, Font fuente, Color colorFondo,
336 | Color colorFuente, Color colorCaret, Border borde, String direccion
337 | ) {
338 | passwordField = new JPasswordField();
339 | passwordField.setLocation(x, y);
340 | passwordField.setSize(ancho, alto);
341 | passwordField.setText(texto);
342 | passwordField.setForeground(colorFuente);
343 | passwordField.setBackground(colorFondo);
344 | passwordField.setCaretColor(colorCaret);
345 | passwordField.setBorder(borde);
346 | switch (direccion) {
347 | case "c":
348 | passwordField.setHorizontalAlignment(SwingConstants.CENTER);
349 | break;
350 | case "r":
351 | passwordField.setHorizontalAlignment(SwingConstants.RIGHT);
352 | break;
353 | default:
354 | break;
355 | }
356 | return passwordField;
357 | }
358 |
359 | /**
360 | * Descripción: Esta función se encarga de construir un objeto gráfico tipo JTextArea.
361 | * @param texto (String): Texto que contiene el textArea.
362 | * @param x (int): Posición inicial en pixeles sobre el eje X.
363 | * @param y (int): Posición inicial en pixeles sobre el eje Y.
364 | * @param ancho (int): Tamaño sobre el eje X en pixeles del textArea.
365 | * @param alto (int): Tamaño sobre el eje Y en pixeles del textArea.
366 | * @param fuente (Font): Tipo de fuente que tendrá el texto del textArea.
367 | * @param colorFondo (Color): Color de fondo o Background del textArea.
368 | * @param colorFuente (Color): Color de la letra o ForeGround del textArea.
369 | * @param colorCaret (Color): Color del Caret del textArea.
370 | * @param borde (Border): Borde del textArea.
371 | * @return textArea (JTextArea): Objeto gráfico tipo JTextArea.
372 | * @throws null : Si construye un JTextArea sin texto, fuente, colorFondo, colorFuente, colorCaret o borde envíe un [null] como parámetro.
373 | */
374 | public JTextArea construirJTextArea(
375 | String texto, int x, int y, int ancho, int alto, Font fuente,
376 | Color colorFondo, Color colorFuente, Color colorCaret, Border borde
377 | ) {
378 | textArea = new JTextArea();
379 | textArea.setLocation(x, y);
380 | textArea.setSize(ancho, alto);
381 | textArea.setText(texto);
382 | textArea.setFont(fuente);
383 | textArea.setForeground(colorFuente);
384 | textArea.setBackground(colorFondo);
385 | textArea.setCaretColor(colorCaret);
386 | textArea.setBorder(borde);
387 | return textArea;
388 | }
389 |
390 | /**
391 | * Descripción: Esta función se encarga de construir un objeto gráfico tipo JComboBox.
392 | * @param cadena (String): Todas las opciones que tendrá el comboBox, para enviar varias opciones separe cada opcion con un "_".
393 | * @param x (int): Posición inicial en pixeles sobre el eje X.
394 | * @param y (int): Posición inicial en pixeles sobre el eje Y.
395 | * @param ancho (int): Tamaño sobre el eje X en pixeles del comboBox.
396 | * @param alto (int): Tamaño sobre el eje Y en pixeles del comboBox.
397 | * @param fuente (Font): Tipo de fuente que tendrá el texto del comboBox.
398 | * @param colorFondo (Color): Color de fondo o Background del comboBox.
399 | * @param colorFuente (Color): Color de la letra o ForeGround del comboBox.
400 | * @param direccion (String): Dirección de los elementos dentro del comboBox siendo:
401 | *
402 | * - 'l' (LEFT): Contenido en la izquierda (por defecto).
403 | * - 'c' (CENTER): Contenido centrado.
404 | * - 'r' (RIGHT): Contenido en la derecha.
405 | *
406 | * @return comboBox (JComboBox): Objeto gráfico tipo JComboBox.
407 | * @throws null : Si construye un JComboBox sin texto, fuente, colorFondo o colorFuente envíe un [null] como parámetro.
408 | */
409 | public JComboBox construirJComboBox(
410 | String cadena, int x, int y, int ancho, int alto, Font fuente,
411 | Color colorFondo, Color colorFuente, String direccion
412 | ) {
413 | comboBox = new JComboBox();
414 | comboBox.setLocation(x, y);
415 | comboBox.setSize(ancho, alto);
416 | for (String item : cadena.split("_")) {
417 | comboBox.addItem(item);
418 | }
419 | comboBox.setFont(fuente);
420 | comboBox.setBackground(colorFondo);
421 | comboBox.setForeground(colorFuente);
422 | switch (direccion) {
423 | case "c":
424 | ((JLabel) comboBox.getRenderer()).setHorizontalAlignment(SwingConstants.CENTER);
425 | break;
426 | case "r":
427 | ((JLabel) comboBox.getRenderer()).setHorizontalAlignment(SwingConstants.RIGHT);
428 | break;
429 | default:
430 | break;
431 | }
432 | return comboBox;
433 | }
434 |
435 | public static ObjGraficosService getService() {
436 | if (servicio == null) servicio = new ObjGraficosService();
437 | return servicio;
438 | }
439 | }
--------------------------------------------------------------------------------
/Clase8/src/app/services/RecursosService.java:
--------------------------------------------------------------------------------
1 | package app.services;
2 |
3 | import java.awt.Color;
4 | import java.awt.Cursor;
5 | import java.awt.Font;
6 | import java.awt.FontFormatException;
7 | import java.awt.GraphicsEnvironment;
8 |
9 | import java.io.File;
10 | import java.io.IOException;
11 |
12 | import javax.swing.border.Border;
13 | import javax.swing.BorderFactory;
14 | import javax.swing.ImageIcon;
15 |
16 | public class RecursosService {
17 | private Color colorPrincipal, colorSecundario, colorGrisOscuro, colorGrisClaro;
18 | private Font fontTPrincipal, fontTitulo, fontSubtitulo;
19 | private Font fontMediana, fontLigera;
20 | private Cursor cMano;
21 | private Border bInferiorAzul, bGris;
22 | private ImageIcon iCerrar, iMinimizar;
23 |
24 | static private RecursosService servicio;
25 |
26 | private RecursosService() {
27 | generarFuentes();
28 |
29 | this.crearColores();
30 | this.crearFuentes();
31 | this.crearCursores();
32 | this.crearBordes();
33 | this.crearImagenes();
34 | }
35 |
36 | private void crearColores() {
37 | colorPrincipal = new Color(60, 78, 120);
38 | colorSecundario = new Color(151, 0, 158);
39 | colorGrisOscuro = new Color(80, 80, 80);
40 | colorGrisClaro = new Color(249, 246, 249);
41 | }
42 |
43 | private void crearFuentes() {
44 | fontTPrincipal = new Font("Rockwell Extra Bold", Font.PLAIN, 20);
45 | fontTitulo = new Font("Calibri (Cuerpo)", Font.BOLD, 17);
46 | fontSubtitulo = new Font("Forte", Font.PLAIN, 13);
47 | fontMediana = new Font("LuzSans-Book", Font.PLAIN, 15);
48 | fontLigera = new Font("LuzSans-Book", Font.PLAIN, 12);
49 | }
50 |
51 | private void crearCursores() { cMano = new Cursor(Cursor.HAND_CURSOR); }
52 |
53 | private void crearBordes() {
54 | bInferiorAzul = BorderFactory.createMatteBorder(0, 0, 2, 0, colorPrincipal);
55 | bGris = BorderFactory.createLineBorder(Color.LIGHT_GRAY, 2, true);
56 | }
57 |
58 | private void crearImagenes() {
59 | iCerrar = new ImageIcon("Clase8/resources/images/cerrar.png");
60 | iMinimizar = new ImageIcon("Clase8/resources/images/minimizar.png");
61 | }
62 |
63 | private void generarFuentes() {
64 | try {
65 | GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
66 | ge.registerFont( Font.createFont(
67 | Font.TRUETYPE_FONT,
68 | new File("Clase8/resources/fonts/LUZRO.ttf")
69 | ));
70 | } catch (IOException | FontFormatException e) {
71 | System.out.println(e);
72 | }
73 | }
74 |
75 | public Color getColorPrincipal() { return colorPrincipal; }
76 |
77 | public Color getColorGrisOscuro() { return colorGrisOscuro; }
78 |
79 | public Color getColorSecundario(){ return colorSecundario; }
80 |
81 | public Color getColorGrisClaro(){ return colorGrisClaro; }
82 |
83 | public Font getFontTPrincipal() { return fontTPrincipal; }
84 |
85 | public Font getFontTitulo() { return fontTitulo; }
86 |
87 | public Font getFontSubtitulo() { return fontSubtitulo; }
88 |
89 | public Font getFontMediana() { return fontMediana; }
90 |
91 | public Font getFontLigera(){ return fontLigera; }
92 |
93 | public Cursor getCMano() { return cMano; }
94 |
95 | public Border getBInferiorAzul() { return bInferiorAzul; }
96 |
97 | public Border getBGris(){ return bGris; }
98 |
99 | public ImageIcon getICerrar() { return iCerrar; }
100 |
101 | public ImageIcon getIMinimizar() { return iMinimizar; }
102 |
103 | public static RecursosService getService() {
104 | if (servicio == null) servicio = new RecursosService();
105 | return servicio;
106 | }
107 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Interfaz Gráfica en Java
2 |
3 | Curso propuesto por el grupo de trabajo Semana de Ingenio y Diseño (**SID**) de la Universidad Distrital Francisco Jose de Caldas.
4 |
5 | ## Monitor
6 |
7 | **Cristian Felipe Patiño Cáceres** - Estudiante de Ingeniería de Sistemas de la Universidad Distrital Francisco Jose de Caldas
8 |
9 | # Clase 8
10 |
11 | ## Objetivos
12 |
13 | * Identificar los diferentes eventos de Mouse disponibles con sus respectivas características, forma de activación, limites y casos particulares.
14 | * Reconocer las diferentes interfaces encargadas de escuchar eventos del Mouse y cada uno de sus métodos de implementación para activar y manipular los eventos.
15 | * Identificar algunos métodos auxiliares relacionados con la posición del puntero del mouse o el movimiento del Scroll que ayudan con la manipulación de eventos.
16 |
17 | # Antes de Comenzar
18 |
19 | ### **Recordatorio**
20 | Recordando el recorrido, se tiene la vista principal con una integración de varios componentes, se ha construido el componente **inicio** a base de la **reutilización de otros componentes** encargados de encapsular la estructura de una plantilla y se utilizó ademas varios enfoques para realizar dicha reutilización.
21 |
22 |
23 |

24 |
Resultado de construcción de componente Inicio
25 |
26 |
27 | # Eventos de Mouse
28 |
29 | A continuación se mostrará el uso de los eventos del Mouse y estos están divididos en 3 grandes grupos, estos grupos se derivan de las diferentes interfaces que se ocupan de la escucha de eventos por Mouse:
30 |
31 | * **Eventos MouseListener**
32 | * **Eventos MouseMotionListener**
33 | * **Eventos MouseWheelListener**
34 |
35 | Esta sesión se concentra en identificar las características de todos los métodos implementados por cada uno de los 3 grandes grupos para lo cual se va a construir el componente **configuraciones**. Dentro de este, se experimentará con cada uno de los eventos y asi reconocer cuando usar cada evento, como se activan, en que momento dejan de funcionar, casos particulares etc.
36 | Una vez reconocida la función de cada tipo de evento en la siguiente lección se identificarán las partes en el proyecto donde será util implementar estos eventos para darle más interactividad a la aplicación.
37 |
38 | ***Nota:** Estos eventos tienen la particularidad de ser usados comúnmente para una alta variedad de objetos gráficos a diferencia de los eventos por acción donde casi siempre suele usarse exclusivamente a los botones. Los eventos de Mouse buscan darle interactividad a más objetos gráficos.*
39 |
40 | # Construcción Componente Gráfico Configuraciones
41 |
42 | En esta sección se va a ver de manera rápida la construcción del componente **configuraciones** que va a servir como medio para poder reconocer las características de cada uno de los eventos. Cuando hablamos de eventos por Mouse un aspecto importante a resaltar es el **posicionamiento del puntero**, este sera el enfoque con el cual se va a identificar las características de cada tipo de evento.
43 |
44 | Para lo anterior el componente **Configuraciones** va tomar el papel de una herramienta para configuración de la sensibilidad y funcionamiento del Mouse, donde el usuario podrá interactuar a manera de prueba con el mouse sobre un panel y comprobar que este funciona adecuadamente.
45 |
46 | El componente **Configuraciones** contendrá:
47 |
48 | * **Panel de interacción:** Un panel vacío que tendrá las propiedades de interactividad con las que el usuario podrá probar su Mouse.
49 | * **Panel de control:** Un panel que contiene una serie de **JLabels** y que le darán al usuario información importante relacionada con el posicionamiento del puntero del mouse y entre varios de sus datos esta:
50 | * Posición (x,y) una vez se realiza un click.
51 | * Posición (x,y) una vez se presiona el botón izquierdo del mouse.
52 | * Posición (x,y) una vez se suelta el botón izquierdo del mouse.
53 | * Posición (x,y) en tiempo real del puntero del Mouse.
54 | * Posición (x,y) en tiempo real del puntero del Mouse una vez se tiene presionado el botón izquierdo del mouse.
55 | * La cantidad de Zoom hacia el panel una vez se mueve el scroll del mouse.
56 | * El estado de **Adentro o Afuera** del mouse con respecto al panel de interacción.
57 |
58 | ## Construcción de objetos gráficos dentro de Configuraciones
59 |
60 | El componente **Configuraciones** puede ser visible en pantalla gracias a la gestión de **navegación** realizada en previas lecciones por lo que se puede directamente iniciar con la construcción del componente, en la clase **configuracionesTemplate** primero se van a obtener los servicios **ObjGraficosService** y **RecursosService** para la creación los objetos gráficos:
61 |
62 | * **Declaración:**
63 | ```javascript
64 | private ObjGraficosService sObjGraficos;
65 | private RecursosService sRecursosService;
66 | ```
67 |
68 | * **Obtención de servicios:**
69 | ```javascript
70 | // Dentro del constructor
71 | sObjGraficos = ObjGraficosService.getService();
72 | sRecursosService = RecursosService.getService();
73 | ```
74 |
75 | Ahora se da un cambio de color al componente:
76 | ```javascript
77 | // Dentro del constructor
78 | this.setBackground(sRecursosService.getColorGrisClaro());
79 | ```
80 |
81 | ## Objetos Decoradores
82 |
83 | A continuación se muestra la creación de los objetos decoradores necesarios, en este caso solo se creara un **Cursor**:
84 |
85 | * **Declaración:**
86 | ```javascript
87 | private Cursor cCruz;
88 | ```
89 |
90 | * **método CrearObjetosDecoradores:**
91 | ```javascript
92 | public void crearObjetosDecoradores(){
93 | this.cCruz = new Cursor(Cursor.CROSSHAIR_CURSOR);
94 | }
95 | ```
96 |
97 | * **llamada del método dentro del constructor:**
98 | ```javascript
99 | // Dentro del constructor
100 | this.crearObjetosDecoradores();
101 | ```
102 |
103 | ## Paneles
104 |
105 | A continuación se muestra la creación de los paneles necesarios para realizar la funcionalidad del componente.
106 |
107 | * **Declaración:**
108 | ```javascript
109 | private JPanel pDibujo, pDatos;
110 | ```
111 |
112 | * **método crearJPanels:**
113 | ```javascript
114 | public void crearJPanels(){
115 | // PANEL P-DIBUJO---------------------------------
116 | pDibujo = sObjGraficos.construirJPanel(
117 | 15, 15, 500, 570,
118 | Color.WHITE,
119 | sRecursosService.getBorderGris()
120 | );
121 | pDibujo.setCursor(cCruz);
122 | this.add(pDibujo);
123 |
124 | // PANEL P-DATOS---------------------------------
125 | pDatos = sObjGraficos.construirJPanel(
126 | 530, 15, 305, 570,
127 | Color.WHITE,
128 | sRecursosService.getBorderGris()
129 | );
130 | this.add(pDatos);
131 | }
132 | ```
133 | Note que al panel de interacción pDibujo se le agrega el cursor previamente creado mediante el método de configuración **setCursor**.
134 |
135 | * **llamada del método dentro del constructor:**
136 | ```javascript
137 | // Dentro del constructor
138 | this.crearJPanels();
139 | ```
140 |
141 | Hasta el momento el componente se ve asi:
142 |
143 |
144 |

145 |
Componente Configuraciones con los paneles creados
146 |
147 |
148 | ## Labels
149 |
150 | A continuación se muestra la creación de los **JLabel** necesarios para la funcionalidad del componente, en este caso se va crear una gran cantidad de JLabels, así que estos serán divididos en 2 categorías:
151 |
152 | * **Labels Estáticos:** Son aquellos que representan información que no va a cambiar con el tiempo, pueden ser títulos, indicaciones etc.
153 | * **Labels Dinámicos:** Son aquellos que representan valores y que con seguridad va a cambiar su contenido a medida que el usuarió interactué.
154 |
155 | Es decir que se va a realizar la modularizacion de código con los JLabel a través de 2 métodos **crearJLabelsEstaticos** y **crearJLabelsDinamicos**.
156 |
157 | * **Declaración:**
158 | ```javascript
159 | // Declaración Labels Estáticos
160 | private JLabel lTitulo, lTituloPosicion, lTituloEstado;
161 | private JLabel lPOnClickX, lPOnClickY, lPInicialX, lPInicialY, lPFinalX, lPFinalY;
162 | private JLabel lPActualX, lPActualY, lLadoX, lLadoY, lZoom, lEstado;
163 |
164 | // Declaración Labels Dinámicos
165 | private JLabel lPOnClickXValor, lPOnClickYValor, lPInicialXValor, lPInicialYValor;
166 | private JLabel lPFinalXValor, lPFinalYValor, lPActualXValor, lPActualYValor;
167 | private JLabel lLadoXValor, lLadoYValor, lZoomValor, lEstadoValor;
168 | ```
169 |
170 | * **Método crearJLabelsEstaticos:**
171 | ```javascript
172 | public void crearJLabelsEstaticos(){
173 | // LABEL TITULO -------------------------------------------------------------------------
174 | lTitulo = sObjGraficos.construirJLabel(
175 | "Datos de Eventos",
176 | (this.pDatos.getWidth() - 200) / 2, 15, 200, 40,
177 | null, null,
178 | sRecursosService.getFontTitulo(),
179 | null,
180 | sRecursosService.getColorPrincipal(),
181 | null,
182 | "c"
183 | );
184 | pDatos.add(lTitulo);
185 |
186 | // LABEL TITULO POSICIÓN-----------------------------------------------------------------
187 | lTituloPosicion = sObjGraficos.construirJLabel(
188 | "Datos de Posiciones",
189 | 20, 60, 180, 40,
190 | null, null,
191 | sRecursosService.getFontTitulo(),
192 | null,
193 | sRecursosService.getColorSecundario(),
194 | null,
195 | "l"
196 | );
197 | pDatos.add(lTituloPosicion);
198 |
199 | // LABEL TITULO ESTADO--------------------------------------------------------------------
200 | lTituloEstado = sObjGraficos.construirJLabel(
201 | "Datos de Estado",
202 | 20, 440, 180, 40,
203 | null, null,
204 | sRecursosService.getFontTitulo(),
205 | null,
206 | sRecursosService.getColorSecundario(),
207 | null,
208 | "l"
209 | );
210 | pDatos.add(lTituloEstado);
211 |
212 | // LABEL POSICIÓN EN X CON CLICK----------------------------------------------------------
213 | lPOnClickX = sObjGraficos.construirJLabel(
214 | "Posición en X al dar click: ",
215 | 40, 100, 160, 40,
216 | null, null,
217 | sRecursosService.getFontLigera(),
218 | null,
219 | sRecursosService.getColorPrincipal(),
220 | null,
221 | "l"
222 | );
223 | pDatos.add(lPOnClickX);
224 |
225 | // LABEL POSICIÓN EN Y CON CLICK----------------------------------------------------------
226 | lPOnClickY = sObjGraficos.construirJLabel(
227 | "Posición en Y al dar click: ",
228 | 40, 120, 160, 40,
229 | null, null,
230 | sRecursosService.getFontLigera(),
231 | null,
232 | sRecursosService.getColorPrincipal(),
233 | null,
234 | "l"
235 | );
236 | pDatos.add(lPOnClickY);
237 |
238 | // LABEL POSICIÓN EN X INICIAL----------------------------------------------------------
239 | lPInicialX = sObjGraficos.construirJLabel(
240 | "Posición en X inicial: ",
241 | 40, 160, 160, 40,
242 | null, null,
243 | sRecursosService.getFontLigera(),
244 | null,
245 | sRecursosService.getColorPrincipal(),
246 | null,
247 | "l"
248 | );
249 | pDatos.add(lPInicialX);
250 |
251 | // LABEL POSICIÓN EN Y INICIAL----------------------------------------------------------
252 | lPInicialY = sObjGraficos.construirJLabel(
253 | "Posición en Y inicial: ",
254 | 40, 180, 160, 40,
255 | null, null,
256 | sRecursosService.getFontLigera(),
257 | null,
258 | sRecursosService.getColorPrincipal(),
259 | null,
260 | "l"
261 | );
262 | pDatos.add(lPInicialY);
263 |
264 | // LABEL POSICIÓN EN X FINAL----------------------------------------------------------
265 | lPFinalX = sObjGraficos.construirJLabel(
266 | "Posición en X final: ",
267 | 40, 220, 160, 40,
268 | null, null,
269 | sRecursosService.getFontLigera(),
270 | null,
271 | sRecursosService.getColorPrincipal(),
272 | null,
273 | "l"
274 | );
275 | pDatos.add(lPFinalX);
276 |
277 | // LABEL POSICIÓN EN Y FINAL----------------------------------------------------------
278 | lPFinalY = sObjGraficos.construirJLabel(
279 | "Posición en Y final: ",
280 | 40, 240, 160, 40,
281 | null, null,
282 | sRecursosService.getFontLigera(),
283 | null,
284 | sRecursosService.getColorPrincipal(),
285 | null,
286 | "l"
287 | );
288 | pDatos.add(lPFinalY);
289 |
290 | // LABEL POSICIÓN EN X ACTUAL----------------------------------------------------------
291 | lPActualX = sObjGraficos.construirJLabel(
292 | "Posición en X actual: ",
293 | 40, 280, 160, 40,
294 | null, null,
295 | sRecursosService.getFontLigera(),
296 | null,
297 | sRecursosService.getColorPrincipal(),
298 | null,
299 | "l"
300 | );
301 | pDatos.add(lPActualX);
302 |
303 | // LABEL POSICIÓN EN Y ACTUAL----------------------------------------------------------
304 | lPActualY = sObjGraficos.construirJLabel(
305 | "Posición en Y actual: ",
306 | 40, 300, 160, 40,
307 | null, null,
308 | sRecursosService.getFontLigera(),
309 | null,
310 | sRecursosService.getColorPrincipal(),
311 | null,
312 | "l"
313 | );
314 | pDatos.add(lPActualY);
315 |
316 | // LABEL LADO EN X -------------------------------------------------------------------
317 | lLadoX = sObjGraficos.construirJLabel(
318 | "Valor lado X: ",
319 | 40, 340, 160, 40,
320 | null, null,
321 | sRecursosService.getFontLigera(),
322 | null,
323 | sRecursosService.getColorPrincipal(),
324 | null,
325 | "l"
326 | );
327 | pDatos.add(lLadoX);
328 |
329 | // LABEL LADO EN Y --------------------------------------------------------------------
330 | lLadoY = sObjGraficos.construirJLabel(
331 | "Valor lado Y: ",
332 | 40, 360, 160, 40,
333 | null, null,
334 | sRecursosService.getFontLigera(),
335 | null,
336 | sRecursosService.getColorPrincipal(),
337 | null,
338 | "l"
339 | );
340 | pDatos.add(lLadoY);
341 |
342 | // LABEL ZOOM --------------------------------------------------------------------------
343 | lZoom = sObjGraficos.construirJLabel(
344 | "Zoom en el panel: ",
345 | 40, 400, 160, 40,
346 | null, null,
347 | sRecursosService.getFontLigera(),
348 | null,
349 | sRecursosService.getColorPrincipal(),
350 | null,
351 | "l"
352 | );
353 | pDatos.add(lZoom);
354 |
355 | // LABEL ESTADO ------------------------------------------------------------------------
356 | lEstado = sObjGraficos.construirJLabel(
357 | "Estado: ",
358 | 40, 480, 160, 40,
359 | null, null,
360 | sRecursosService.getFontLigera(),
361 | null,
362 | sRecursosService.getColorPrincipal(),
363 | null,
364 | "l"
365 | );
366 | pDatos.add(lEstado);
367 | }
368 | ```
369 |
370 | * **Método crearJLabelsDinamicos:**
371 | ```javascript
372 | public void crearJLabelsDinamicos() {
373 | // LABEL POSICIÓN EN X CON CLICK VALOR -----------------------------------------------------
374 | lPOnClickXValor = sObjGraficos.construirJLabel(
375 | "0",
376 | 200, 100, 160, 40,
377 | null, null,
378 | sRecursosService.getFontLigera(),
379 | null,
380 | sRecursosService.getColorPrincipal(),
381 | null,
382 | "l"
383 | );
384 | pDatos.add(lPOnClickXValor);
385 |
386 | // LABEL POSICIÓN EN Y CON CLICK VALOR -----------------------------------------------------
387 | lPOnClickYValor = sObjGraficos.construirJLabel(
388 | "0",
389 | 200, 120, 160, 40,
390 | null, null,
391 | sRecursosService.getFontLigera(),
392 | null,
393 | sRecursosService.getColorPrincipal(),
394 | null,
395 | "l"
396 | );
397 | pDatos.add(lPOnClickYValor);
398 |
399 | // LABEL POSICIÓN EN X INICIAL VALOR -----------------------------------------------------
400 | lPInicialXValor = sObjGraficos.construirJLabel(
401 | "0",
402 | 200, 160, 160, 40,
403 | null, null,
404 | sRecursosService.getFontLigera(),
405 | null,
406 | sRecursosService.getColorPrincipal(),
407 | null,
408 | "l"
409 | );
410 | pDatos.add(lPInicialXValor);
411 |
412 | // LABEL POSICIÓN EN Y INICIAL VALOR -----------------------------------------------------
413 | lPInicialYValor = sObjGraficos.construirJLabel(
414 | "0",
415 | 200, 180, 160, 40,
416 | null, null,
417 | sRecursosService.getFontLigera(),
418 | null,
419 | sRecursosService.getColorPrincipal(),
420 | null,
421 | "l"
422 | );
423 | pDatos.add(lPInicialYValor);
424 |
425 | // LABEL POSICIÓN EN X FINAL VALOR -----------------------------------------------------
426 | lPFinalXValor = sObjGraficos.construirJLabel(
427 | "0",
428 | 200, 220, 160, 40,
429 | null, null,
430 | sRecursosService.getFontLigera(),
431 | null,
432 | sRecursosService.getColorPrincipal(),
433 | null,
434 | "l"
435 | );
436 | pDatos.add(lPFinalXValor);
437 |
438 | // LABEL POSICIÓN EN Y FINAL VALOR -----------------------------------------------------
439 | lPFinalYValor = sObjGraficos.construirJLabel(
440 | "0",
441 | 200, 240, 160, 40,
442 | null, null,
443 | sRecursosService.getFontLigera(),
444 | null,
445 | sRecursosService.getColorPrincipal(),
446 | null,
447 | "l"
448 | );
449 | pDatos.add(lPFinalYValor);
450 |
451 | // LABEL POSICIÓN EN X ACTUAL VALOR -----------------------------------------------------
452 | lPActualXValor = sObjGraficos.construirJLabel(
453 | "0",
454 | 200, 280, 160, 40,
455 | null, null,
456 | sRecursosService.getFontLigera(),
457 | null,
458 | sRecursosService.getColorPrincipal(),
459 | null,
460 | "l"
461 | );
462 | pDatos.add(lPActualXValor);
463 |
464 | // LABEL POSICIÓN EN Y ACTUAL VALOR -----------------------------------------------------
465 | lPActualYValor = sObjGraficos.construirJLabel(
466 | "0",
467 | 200, 300, 160, 40,
468 | null, null,
469 | sRecursosService.getFontLigera(),
470 | null,
471 | sRecursosService.getColorPrincipal(),
472 | null,
473 | "l"
474 | );
475 | pDatos.add(lPActualYValor);
476 |
477 | // LABEL LADO EN X VALOR --------------------------------------------------------------
478 | lLadoXValor = sObjGraficos.construirJLabel(
479 | "0",
480 | 200, 340, 160, 40,
481 | null, null,
482 | sRecursosService.getFontLigera(),
483 | null,
484 | sRecursosService.getColorPrincipal(),
485 | null,
486 | "l"
487 | );
488 | pDatos.add(lLadoXValor);
489 |
490 | // LABEL LADO EN Y VALOR ---------------------------------------------------------------
491 | lLadoYValor = sObjGraficos.construirJLabel(
492 | "0",
493 | 200, 360, 160, 40,
494 | null, null,
495 | sRecursosService.getFontLigera(),
496 | null,
497 | sRecursosService.getColorPrincipal(),
498 | null,
499 | "l"
500 | );
501 | pDatos.add(lLadoYValor);
502 |
503 | // LABEL ZOOM VALOR ----------------------------------------------------------------------
504 | lZoomValor = sObjGraficos.construirJLabel(
505 | "0",
506 | 200, 400, 160, 40,
507 | null, null,
508 | sRecursosService.getFontLigera(),
509 | null,
510 | sRecursosService.getColorPrincipal(),
511 | null,
512 | "l"
513 | );
514 | pDatos.add(lZoomValor);
515 |
516 | // LABEL ESTADO VALOR -------------------------------------------------------------------
517 | lEstadoValor = sObjGraficos.construirJLabel(
518 | "NINGUNO",
519 | 80, 520, 160, 40,
520 | null, null,
521 | sRecursosService.getFontTitulo(),
522 | null,
523 | sRecursosService.getColorPrincipal(),
524 | null,
525 | "l"
526 | );
527 | pDatos.add(lEstadoValor);
528 | }
529 | ```
530 |
531 | * **llamada de métodos dentro del constructor:**
532 | ```javascript
533 | // Dentro del Constructor
534 | this.crearJLabelsEstaticos();
535 | this.crearJLabelsDinamicos();
536 | ```
537 |
538 | Al ejecutar la aplicación, el componente **Configuraciones** se vera de la siguiente manera:
539 |
540 |
541 |

542 |
Componente Configuraciones con la creación de todos los JLabels
543 |
544 |
545 | Por ultimo y para acabar con la clase **Template** del componente **Configuraciones** se crean los métodos **get** necesarios, en este caso se crean unicamente para los **JLabel dinámicos**:
546 |
547 | ```javascript
548 | public JLabel getLPOnClickXValor() { return lPOnClickXValor; }
549 |
550 | public JLabel getLPOnClickYValor() { return lPOnClickYValor; }
551 |
552 | public JLabel getLPInicialXValor() { return lPInicialXValor; }
553 |
554 | public JLabel getLPInicialYValor() { return lPInicialYValor; }
555 |
556 | public JLabel getLPFinalXValor() { return lPFinalXValor; }
557 |
558 | public JLabel getLPFinalYValor() { return lPFinalYValor; }
559 |
560 | public JLabel getLPActualXValor() { return lPActualXValor; }
561 |
562 | public JLabel getLPActualYValor() { return lPActualYValor; }
563 |
564 | public JLabel getLLadoXValor() { return lLadoXValor; }
565 |
566 | public JLabel getLLadoYValor() { return lLadoYValor; }
567 |
568 | public JLabel getLZoomValor() { return lZoomValor; }
569 |
570 | public JLabel getLEstadoValor() { return lEstadoValor; }
571 | ```
572 |
573 | # Eventos MouseListener
574 |
575 | Dentro de la clase **ConfiguracionesComponent** específicamente en la declaración de la clase se va a implementar de la interfaz **MouseListener**:
576 |
577 |
578 |

579 |
Implementación de la interfaz MouseListener en la clase ConfiguracionesComponent
580 |
581 |
582 | ***Nota:** Se debe tener en cuenta la importación de las librerías que soporta la implementación de la interfaz.*
583 |
584 | Al igual que con la implementación de la interfaz **ActionListener** esta va a pedir que se importen todos los métodos por defecto, por lo general el mismo editor de código va a mostrar el error y va a sugerir la importación automática de estos.
585 |
586 |
587 |

588 |
Métodos implementados por defecto de la interfaz MouseListener
589 |
590 |
591 | Se puede observar que esta vez la interfaz **MouseListener** implementa un total de 5 métodos por defecto y cada uno de ellos será explicado en esta sección.
592 |
593 | Antes de continuar con la explicación se debe adicionar la capacidad de escuchar los eventos tipo **MouseListener** al panel de interacción **pDibujo**, el proceso es muy parecido a cuando se agregaba un **ActionListener** solo que esta vez se usa el método **addMouseListener**:
594 | ```javascript
595 | // Dentro del método crearJPanels
596 | pDibujo.addMouseListener(this.configuracionesComponent);
597 | ```
598 |
599 | Como la clase **configuracionesComponent** implementa de la interfaz **MouseListener** es posible pasar como argumento el objeto de esta clase igual como se haría con una clase que implementa un **ActionListener**.
600 |
601 | ***Nota:** Como este método hace parte de la etapa de configuración debe ir entre la construcción del panel y la adición de este en el componente.*
602 |
603 |
604 |

605 |
Método de configuración entre su construcción y su agregación
606 |
607 |
608 | ## MouseClicked
609 |
610 | Un evento **MouseClicked** se activa una vez el usuario da un "**Click**" en el objeto gráfico al cual fue proporcionado la adición del **MouseListener** en este caso el panel de interacción **pDibujo**. Cuando se menciona hacer un "*Click*" se hace referencia a la acción de **Oprimir** el botón del Mouse (por lo general el botón izquierdo) y luego **Soltarlo**.
611 |
612 | Esto tiene varias implicaciones, por ejemplo si se **oprime** el botón del Mouse, luego se **arrastra** el Mouse manteniendo oprimido el botón y luego se **suelta**, este ya no va a funcionar. Es decir que para que se considere que se ha dado un **click** el Mouse se debe mantener en la misma posición una vez se **presiona** y se **suelta**.
613 |
614 | Se procede a configurar el evento, en este caso se quiere que cuando el usuario de un **Click** sobre el panel de interacción **pDibujo**, se muestre las coordenadas en X,Y de donde estaba el puntero al momento de realizar esa acción. Para esto se debe mostrar esos valores en los labels **lPOnClickXValor** y **lPOnClickYValor**.
615 |
616 | Existen dos métodos para encontrar la coordenada del puntero una vez se realiza una acción, es necesario usar el objeto recibido como parámetro **MouseEvent** para hacer esto, los métodos en cuestión son:
617 |
618 | * **e.getX() / e.getY():** Que darán la coordenada del puntero cuando se activo la acción en X o en Y con respecto al objeto gráfico que activo la función.
619 | * **e.getXOnScreen() / e.getYOnScreen():** Que darán la coordenada del puntero cuando se activo la acción en X o en Y con respecto a la pantalla total del monitor del usuario.
620 |
621 | Hay que tener esto en cuenta ya que ambos métodos arrojaran datos diferentes debido a la perspectiva como se puede evidenciar en la siguiente imagen:
622 |
623 |
624 |

625 |
Comparación perspectivas entre métodos que nos dan la posición del puntero
626 |
627 |
628 | Por ahora solo es de interés la posición con respecto al objeto gráfico que activa la acción (**pDibujo**) por lo que se va a usar unicamente los métodos **e.getX() / e.getY()**.
629 |
630 | * Como se quiere cambiar el texto de los Labels **lPOnClickXValor y lPOnClickYValor** se obtienen a través del objeto que referencia a la clase **Template** y sus métodos **get** correspondientes:
631 | ```javascript
632 | public void mouseClicked(MouseEvent e) {
633 | this.configuracionesTemplate.getLPOnClickXValor();
634 | this.configuracionesTemplate.getLPOnClickYValor();
635 | }
636 | ```
637 |
638 | * Se le indica ahora que va a cambiar el texto con el método:
639 | * **setText():** Que recibe como parámetro un String y representa el nuevo texto que tendrá el Label.
640 | ```javascript
641 | public void mouseClicked(MouseEvent e) {
642 | this.configuracionesTemplate.getLPOnClickXValor().setText();
643 | this.configuracionesTemplate.getLPOnClickYValor().setText();
644 | }
645 | ```
646 |
647 | * Ahora dentro de los paréntesis se pasan las coordenadas correspondientes:
648 | ```javascript
649 | public void mouseClicked(MouseEvent e) {
650 | this.configuracionesTemplate.getLPOnClickXValor().setText(e.getX());
651 | this.configuracionesTemplate.getLPOnClickYValor().setText(e.getY());
652 | }
653 | ```
654 |
655 | * Sin embargo como el método recibe por parámetro un **String** y se esta enviando como argumento un **entero** el IDE o editor de código indicará un error. Para pasar de un entero a String simplemente se puede usar la notación de: **(numeroEntero + "")** de esta forma Java entenderá que se esta haciendo una suma de caracteres y se hará la conversion automáticamente.
656 |
657 | ```javascript
658 | public void mouseClicked(MouseEvent e) {
659 | this.configuracionesTemplate.getLPOnClickXValor().setText(e.getX() + "");
660 | this.configuracionesTemplate.getLPOnClickYValor().setText(e.getY() + "");
661 | }
662 | ```
663 |
664 | Una vez se ejecuta la aplicación, se muestra el componente **Configuraciones** y se da click en cualquier parte del panel de interacción **pDibujo** se cambiara automáticamente la información de la posición de X,Y cuando se da Click:
665 |
666 |
667 |

668 |
Componente Configuraciones con la implementación de MouseClicked
669 |
670 |
671 | Ahora bien, cabe recalcar que si se oprime click en cualquier otra parte que no sea el panel de interacción **pDibujo** o si se oprime el botón izquierdo del Mouse pero se suelta en otra posición no se verá reflejado el evento:
672 |
673 | ***Nota:** En las siguientes secuencias se ve reflejado que el botón izquierdo del Mouse se mantiene oprimido cuando este tiene una circunferencia amarilla alrededor. Como ya se explico previamente es de esa forma en que el evento **MouseClicked** deja de funcionar.*
674 |
675 |
676 |

677 |
Forma incorrecta de activar el evento MouseClicked
678 |
679 |
680 | ## MousePressed
681 |
682 | Un evento **MousePressed** se activa una vez el usuario presiona el botón izquierdo del Mouse, no ve la necesidad de saber cuando es soltado el botón, ni si se ha movido el Mouse posteriormente a la presión del botón, este solo se enfoca netamente al momento en que se presiono el botón del Mouse. La única condición de activación es que el puntero se encuentre dentro del objeto gráfico que tiene adicionada la escucha del **MouseListener** al momento de presionar el botón del Mouse, en este caso el panel de interacción **pDibujo**.
683 |
684 | Se va a configurar este método y esta vez se que al presionar el botón del Mouse cambie la información de los Labels **LPInicialXValor y LPInicialYValor**:
685 |
686 | ```javascript
687 | public void mousePressed(MouseEvent e) {
688 | this.configuracionesTemplate.getLPInicialXValor().setText(e.getX() + "");
689 | this.configuracionesTemplate.getLPInicialYValor().setText(e.getY() + "");
690 | }
691 | ```
692 |
693 | Una vez se ejecuta la aplicación se evidencia la función de este evento:
694 |
695 |
696 |

697 |
Componente Configuraciones con la implementación de MousePressed
698 |
699 |
700 | En el anterior video se ven varias particularidades:
701 | * Siempre se va a ver reflejado primero el evento **MousePressed** ya que las milésimas de segundo en las que el usuario se demora en soltar el botón del mouse retrasa un poco al **MouseClicked**.
702 | * Si se oprime el botón del Mouse y se espera unos segundos sin mover el mouse se va a ver reflejado primero el evento en el **MousePressed** y hasta que se suelte el botón del mouse se vera en el **MouseClicked**.
703 | * Si se oprime el botón del Mouse y mientras se mantiene presionado se mueve el Mouse solo se vera reflejado el evento **MousePressed**.
704 | * Si se oprime el botón afuera del panel de interacción **pDibujo** no se vera reflejado ningún evento.
705 |
706 | ## MouseReleased
707 |
708 | Un evento **MouseReleased** se activa una vez el usuario suelta el botón del Mouse siempre y cuando este haya sido presionado previamente dentro del objeto gráfico que escucha los eventos **MouseListener**, no ve la necesidad de saber en que momento se oprimió el botón ni si se ha movido el mouse previamente de soltar el botón, este solo se enfoca netamente al momento en que se ha soltado el botón del Mouse. Una particularidad a mencionar es que si el botón del Mouse se suelta en alguna parte afuera del panel de interacción **pDibujo** puede funcionar siempre y cuando se haya presionado previamente el botón del Mouse dentro de el objeto gráfico que activo el evento.
709 |
710 | Se va a configurar este método y esta vez se quiere que al soltar el botón del Mouse cambie la información de los Labels **LPFinalXValor y LPFinalYValor**:
711 | ```javascript
712 | public void mouseReleased(MouseEvent e) {
713 | this.configuracionesTemplate.getLPFinalXValor().setText(e.getX() + "");
714 | this.configuracionesTemplate.getLPFinalYValor().setText(e.getY() + "");
715 | }
716 | ```
717 |
718 | Se ejecuta la aplicación se es posible dar cuenta de la función de este evento:
719 |
720 |
721 |

722 |
Componente Configuraciones con la implementación de MouseReleased
723 |
724 |
725 | En la anterior secuencia se ven varias particularidades:
726 | * Si se presiona y suelta el botón del Mouse en la misma posición (Hacer un Click), los tres eventos van a reflejar las mismas coordenadas.
727 | * Si se presiona el botón del Mouse y se arrastra el Mouse mientras se tiene presionado el botón y luego se suelta se vera reflejado el evento **MousePressed** y el evento **MouseReleased** pero no el evento **MouseClicked**.
728 | * Si se presiona el botón dentro del panel de interacción **pDibujo** y se suelta el botón del Mouse cuando este esta afuera del panel de interacción se vera reflejado el evento **MouseReleased** aun asi.
729 | * Si se oprime el botón afuera del panel de interacción **pDibujo** no se vera reflejado ningún evento.
730 |
731 | ## MouseEntered
732 |
733 | Este evento se activa una vez el usuario entra a través del puntero del Mouse al objeto gráfico que agrego al **MouseListener**, en este caso el panel de interacción **pDibujo**. No tiene la necesidad de oprimir ningún botón del Mouse, el simple hecho de que este sobre el objeto gráfico activa este evento.
734 |
735 | Se va a configurar este método y esta vez se quiere que al entrar al panel **pDibujo** cambie el valor de **lEstadoValor** para indicar que el estado ahora es *ADENTRO*:
736 |
737 | ```javascript
738 | public void mouseEntered(MouseEvent e) {
739 | this.configuracionesTemplate.getLEstadoValor().setText("ADENTRO");
740 | }
741 | ```
742 |
743 | Una vez se ejecuta la aplicación se evidencia la función de este evento:
744 |
745 |
746 |

747 |
Componente Configuraciones con la implementación de MouseEntered
748 |
749 |
750 | Es posible ver que una vez el usuario ingresa con el puntero del mouse al panel de interacción **pDatos** el estado en el panel de datos pasa de **NINGUNO** a **ADENTRO**, sin embargo, este no parece cambiar más, se queda en el ultimo estado incluso si vuelve a salir y entrar de nuevo. Esto es por que aun no se ha configurado el evento en caso de que se salga del objeto gráfico.
751 |
752 | ## MouseExited
753 |
754 | Este evento se activa una vez el usuario sale a través del puntero del Mouse del objeto gráfico que agrego al **MouseListener**, en este caso el panel de interacción **pDibujo** siempre y cuando haya entrado en el previamente. No tiene la necesidad de oprimir ningún botón del Mouse, el simple hecho de que este salga del objeto gráfico activa este evento.
755 |
756 | Se va a configurar este método y esta vez se quiere que al salir del panel **pDibujo** cambie el valor de **lEstadoValor** para indicar que el estado ahora es *AFUERA*:
757 | ```javascript
758 | @Override
759 | public void mouseExited(MouseEvent e) {
760 | this.configuracionesTemplate.getLEstadoValor().setText("AFUERA");
761 | }
762 | ```
763 |
764 | Una vez se ejecuta la aplicación se puede dar cuenta la función de este evento:
765 |
766 |
767 |

768 |
Componente Configuraciones con la implementación de MouseExited
769 |
770 |
771 | Como se observa una vez se abre el componente **Configuraciones** el estado está en **NINGUNO**, cada vez que se entra al panel de interacción **pDibujo** el estado cambia a **ADENTRO** y una vez se sale del panel el estado ahora es **AFUERA**.
772 |
773 | # MouseMotionListener
774 |
775 | Este grupo de eventos para el Mouse da unas características especiales, ya que están enfocados en la muestra de información en tiempo real de acciónes con el Mouse. Estos eventos son útiles para acciones como las de arrastrar objetos, dibujar en tiempo real figuras por pantalla o crear efectos con el movimiento del Mouse.
776 |
777 | En la clase **ConfiguracionesComponent**, específicamente en la declaración de esta se va a implementar la interfaz **MouseMotionListener**. Una ventaja con uso de interfaces para implementar es que una clase puede **implementar varias interfaces** al tiempo, esto no es posible con la herencia ya que en java no existe **Herencia Multiple**.
778 |
779 |
780 |

781 |
Implementación de la interfaz MouseMotionListener en la clase ConfiguracionesComponent
782 |
783 |
784 | ***Nota:** Se debe tener en cuenta la importación de la librería que soporta la implementación de la interfaz.*
785 |
786 | Al igual que con la implementación de las demás interfaces esta va a pedir que se importen los métodos por defecto, por lo general el mismo IDE o editor de código va a mostrar el error y va a sugerir la importación automática de estos.
787 |
788 |
789 |

790 |
Métodos implementados por defecto de la interfaz MouseMotionListener
791 |
792 |
793 | Se puede observar que esta vez la interfaz **MouseMotionListener** implementa un total de 2 métodos por defecto y cada uno de ellos serán explicados en esta sección.
794 |
795 | Antes de continuar con la explicación se debe adicionar la capacidad de escuchar los eventos de tipo **MouseMotionListener** a la panel de interacción **pDibujo**, esta vez se usara el método **addMouseMotionListener**:
796 | ```javascript
797 | // Dentro del método crearJPanels
798 | pDibujo.addMouseMotionListener(this.configuracionesComponent);
799 | ```
800 |
801 | Como la clase **configuracionesComponent** implementa de la interfaz **MouseMotionListener** es posible pasar como argumento el objeto de esta clase.
802 |
803 | ***Nota:** Como este método hace parte de la etapa de configuración debe ir entre la construcción del panel y la adición de este en el componente.*
804 |
805 | ## MouseMoved
806 |
807 | Este evento se activa cada vez que el usuario mueve el puntero del Mouse y este se encuentra dentro del objeto gráfico al cual se le adiciono el **MouseMotionListener**, en este caso el panel de interacción **pDibujo**. No tiene la necesidad de oprimir el botón del mouse, con el hecho de estar dentro del objeto gráfico y moverse dentro, este evento se va a activar.
808 |
809 | Se va a configurar el método y esta vez se quiere que cada vez que el usuario este moviendo el Mouse dentro del panel **pDibujo** actualice la posición actual en tiempo real del Mouse, para eso se va a cambiar la información de los label **lPActualXValor y lPActualYValor**:
810 | ```javascript
811 | public void mouseMoved(MouseEvent e) {
812 | this.configuracionesTemplate.getLPActualXValor().setText(e.getX() + "");
813 | this.configuracionesTemplate.getLPActualYValor().setText(e.getY() + "");
814 | }
815 | ```
816 |
817 | Una vez se ejecuta la aplicación se evidencia la función de este evento:
818 |
819 |
820 |

821 |
Componente Configuraciones con la implementación de MouseMoved
822 |
823 |
824 | ## MouseDragged
825 |
826 | Este evento se activa una vez se oprime el botón del Mouse dentro del objeto gráfico que tiene agregado el **MouseMotionListener** en este caso el panel de interacción **pDibujo** y se mueve el puntero del Mouse mientras se mantiene oprimido el botón del Mouse, por otro lado termina de accionarse una vez se suelta el botón del Mouse. Se debe oprimir el botón del Mouse dentro del objeto gráfico o de lo contrario no funcionará este evento.
827 |
828 | Se va a configurar el método y esta vez se quiere que cada vez que el usuario oprima el botón del Mouse y empiece a mover el Mouse actualice la posición actual en tiempo real del Mouse, para eso se va a cambiar la información de los label **lLadoXValor y lLadoYValor**:
829 | ```javascript
830 | public void mouseDragged(MouseEvent e) {
831 | this.configuracionesTemplate.getLLadoXValor().setText(e.getX() + "");
832 | this.configuracionesTemplate.getLLadoYValor().setText(e.getY() + "");
833 | }
834 | ```
835 |
836 | Una vez se ejecute la aplicación es posible ver la función de este evento:
837 |
838 |
839 |

840 |
Componente Configuraciones con la implementación de mouseDragged
841 |
842 |
843 | De la anterior secuencia se puede notar algunas particularidades:
844 | * Una vez el usuario oprime el botón del mouse dentro del panel de interacción **pDibujo** y empieza a arrastrar el mouse sin soltar aun el botón, deja de funcionar el evento **MouseMoved** y empieza a funcionar el evento **MouseDragged**.
845 | * Una vez el usuario suelta el botón del Mouse y está dentro del panel de interacción **pDibujo** dejara de funcionar el evento **MouseDragged** y empieza a funcionar el evento **MouseMoved**.
846 | * Si el usuario presiono el botón del Mouse dentro del panel de interacción **pDibujo** previamente y se mantiene presionado el evento **MouseDragged** seguirá funcionando incluso si se sale del panel todo mientras se siga manteniendo presionado el botón del mouse.
847 | * Si se presiona desde afuera del panel de interacción **pDibujo** ningún evento tendrán efecto.
848 |
849 | # MouseWheelListener
850 |
851 | Este grupo de eventos se concentran unicamente en el movimiento del **scroll del Mouse** (la rueda que por lo general tiene el Mouse en medio de los dos botones). Este evento se fija unicamente del movimiento de este Scroll, es decir que no tiene en cuenta cuando se **hace un click** con el Scroll, solo cuando el usuario lo mueve hacia arriba o hacia abajo.
852 |
853 | En la clase **ConfiguracionesComponent**, específicamente en la declaración de la clase, se va a implementar la interfaz **MouseWheelListener**. Recordar que esto es posible ya que una clase puede **implementar varias interfaces** al tiempo.
854 |
855 |
856 |

857 |
Implementación de la interfaz MouseWheelListener en la clase ConfiguracionesComponent
858 |
859 |
860 | Como con todas las demás interfaces, se debe implementar los métodos por defecto que trae esta interfaz.
861 |
862 |
863 |

864 |
Métodos implementados por defecto de la interfaz MouseWheelListener
865 |
866 |
867 | Se puede observar que la interfaz **MouseWheelListener** implementa un solo método por defecto y este será explicado en esta sección.
868 |
869 | Antes de continuar con la explicación se debe adicionar la capacidad de escuchar los eventos tipo **MouseWheelListener** al panel de interacción **pDibujo**, esta vez se usará el método **addMouseWheelListener**:
870 | ```javascript
871 | // Dentro del método crearJPanels
872 | pDibujo.addMouseWheelListener(this.configuracionesComponent);
873 | ```
874 |
875 | Como la clase **configuracionesComponent** implementa de la interfaz **MouseWheelListener** es posible pasar como argumento el objeto de esta clase.
876 |
877 | ***Nota:** Como este método hace parte de la etapa de configuración debe ir entre la construcción del panel y la adición de este en el componente.*
878 |
879 | ## MouseWheelMoved
880 |
881 | Este evento se activa una vez el usuario mueve el **Scroll del Mouse**, es decir lo desliza hacia arriba o hacia abajo, para que este evento pueda ser activado debe estar dentro del objeto gráfico que tiene agregado la escucha de eventos tipo **MouseWheelListener** en este caso el panel de interacción **pDatos**. Si se realiza afuera de este no tendrá ningún efecto.
882 |
883 | Se va a configurar el método y esta vez se quiere que cada vez que el usuario deslice el Scroll hacia arriba o hacia abajo se realice la simulación de acercamiento y alejamiento, esto se realiza cambiando el valor del label **lZoomValor**. Cuando el usuario mueva el Scroll hacia arriba va a aumentar el numero del zoom mientras que cuando el usuario mueva hacia abajo este numero va a disminuir.
884 |
885 | Para saber si el usuario esta subiendo o bajando el scroll del Mouse se debe usar el método:
886 | * **e.getWheelRotation():** Que retorna un numero entero.
887 | * Si el usuario esta subiendo con el scroll va a retornar el numero **-1**.
888 | * Si el usuario esta bajando con el scroll va a retornar el numero **1**.
889 |
890 | Con este método se puede realizar la configuración del zoom explicada anteriormente:
891 | ```javascript
892 | public void mouseWheelMoved(MouseWheelEvent e) {
893 | if(e.getWheelRotation() == -1)
894 | // Acción Cuando el usuario sube con el Scroll
895 | if(e.getWheelRotation() == 1)
896 | // Acción Cuando el usuario baja con el Scroll
897 | }
898 | ```
899 |
900 | * Como se quiere cambiar el valor del label **lZoomValor**, se debe obtener a traves del objeto de la clase **Template** y su respectivo método **get**, una vez obtenido se debe indicar que cambiará su contenido con el método **setText**:
901 | ```javascript
902 | public void mouseWheelMoved(MouseWheelEvent e) {
903 | if(e.getWheelRotation() == -1)
904 | this.configuracionesTemplate.getLZoomValor().setText();
905 | if(e.getWheelRotation() == 1)
906 | this.configuracionesTemplate.getLZoomValor().setText();
907 | }
908 | ```
909 |
910 | * Ahora se debe indicar en cada caso que se le va a sumar o restar el valor de 1, pero para eso es necesario obtener antes el valor actual que tiene el label **lZoomValor**, ya que si solo se le indica que sume o reste 1 el valor del Label **lZoomValor** solo podría ser 1 o -1. Para obtener su valor nuevamente se debe llamar al Label a través del objeto de la clase **Template** y su respectivo método **get** seguido del método **getText()** que retorna en un String el contenido del Label:
911 | ```javascript
912 | public void mouseWheelMoved(MouseWheelEvent e) {
913 | if(e.getWheelRotation() == -1)
914 | this.configuracionesTemplate.getLZoomValor().setText(
915 | this.configuracionesTemplate.getLZoomValor().getText()
916 | );
917 | if(e.getWheelRotation() == 1)
918 | this.configuracionesTemplate.getLZoomValor().setText(
919 | this.configuracionesTemplate.getLZoomValor().getText()
920 | );
921 | }
922 | ```
923 |
924 | * Como se quiere sumar o restar un 1 al contenido actual del Label **lZoomValor** se debe convertir el dato de String a entero y de esta forma se puede realizar una suma o resta entre números:
925 | ```javascript
926 | public void mouseWheelMoved(MouseWheelEvent e) {
927 | if(e.getWheelRotation() == -1)
928 | this.configuracionesTemplate.getLZoomValor().setText(
929 | Integer.parseInt(this.configuracionesTemplate.getLZoomValor().getText())
930 | );
931 | if(e.getWheelRotation() == 1)
932 | this.configuracionesTemplate.getLZoomValor().setText(
933 | Integer.parseInt(this.configuracionesTemplate.getLZoomValor().getText())
934 | );
935 | }
936 | ```
937 |
938 | * Es posible notar que hasta el momento en ambos casos se esta haciendo el mismo proceso, se puede entonces encapsular el proceso de obtención y conversion del zoom actual en una variable antes de que empiecen las condiciones, para que no quede tan confuso el código:
939 |
940 | ```javascript
941 | public void mouseWheelMoved(MouseWheelEvent e) {
942 | int valorZoomActual = Integer.parseInt(this.configuracionesTemplate.getLZoomValor().getText());
943 | if(e.getWheelRotation() == -1)
944 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual);
945 | if(e.getWheelRotation() == 1)
946 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual);
947 | }
948 | ```
949 |
950 | * Ahora si se va a sumar y restar un 1 según sea el caso:
951 |
952 | ```javascript
953 | public void mouseWheelMoved(MouseWheelEvent e) {
954 | int valorZoomActual = Integer.parseInt(this.configuracionesTemplate.getLZoomValor().getText());
955 | if(e.getWheelRotation() == -1)
956 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual + 1);
957 | if(e.getWheelRotation() == 1)
958 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual - 1);
959 | }
960 | ```
961 |
962 | * Sin embargo el método **setText** exige enviar como argumento un String asi que se realiza otra conversion, esta vez de entero a String como se menciono antes:
963 | ```javascript
964 | public void mouseWheelMoved(MouseWheelEvent e) {
965 | int valorZoomActual = Integer.parseInt(this.configuracionesTemplate.getLZoomValor().getText());
966 | if(e.getWheelRotation() == -1)
967 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual + 1 + "");
968 | if(e.getWheelRotation() == 1)
969 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual - 1 + "");
970 | }
971 | ```
972 |
973 | Si se ejecuta la aplicación se puede ver el evento funcionando:
974 |
975 |
976 |

977 |
Componente Configuraciones con la implementación de mouseWheelMoved
978 |
979 |
980 | Sin embargo, es posible notar que si se baja demasiado con el scroll este empieza a mostrar números negativos y esto en términos de zoom no es correcto, por lo que seria bueno dejar un limite en caso de bajar el scroll para que no pueda pasar a menos de 0:
981 |
982 | * Primero se debe indicar en el condicional que controla cuando el Scroll esta bajando que se va a realizar otra condición, esto se hace con el separador **&&**.
983 |
984 | ```javascript
985 | public void mouseWheelMoved(MouseWheelEvent e) {
986 | int valorZoomActual = Integer.parseInt(this.configuracionesTemplate.getLZoomValor().getText());
987 | if(e.getWheelRotation() == -1)
988 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual + 1 + "");
989 | if(e.getWheelRotation() == 1 &&)
990 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual - 1 + "");
991 | }
992 | ```
993 |
994 | * Ahora se debe obtener el valor actual del zoom para poder ser comparado, sin embargo, este proceso de obtención y conversion del Zoom actual ya está encapsulado en la variable **valorZoomActual** por lo que se usa esta:
995 |
996 | ```javascript
997 | public void mouseWheelMoved(MouseWheelEvent e) {
998 | int valorZoomActual = Integer.parseInt(this.configuracionesTemplate.getLZoomValor().getText());
999 | if(e.getWheelRotation() == -1)
1000 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual + 1 + "");
1001 | if(e.getWheelRotation() == 1 && valorZoomActual)
1002 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual - 1 + "");
1003 | }
1004 | ```
1005 |
1006 | * Ahora solo nos hace falta realizar la comparación:
1007 |
1008 | ```javascript
1009 | public void mouseWheelMoved(MouseWheelEvent e) {
1010 | int valorZoomActual = Integer.parseInt(this.configuracionesTemplate.getLZoomValor().getText());
1011 | if(e.getWheelRotation() == -1)
1012 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual + 1 + "");
1013 | if(e.getWheelRotation() == 1 && valorZoomActual > 0)
1014 | this.configuracionesTemplate.getLZoomValor().setText(valorZoomActual - 1 + "");
1015 | }
1016 | ```
1017 |
1018 | En la anterior condición se indicando al programa que solo cuando el valor del Zoom actual sea mayor a 0 este podrá ser restado, de lo contrario este valor será 0 y por ende no podrá entrar a la condición.
1019 |
1020 | Si se ejecuta de nuevo la aplicación se puede notar que se cumple la condición que queríamos:
1021 |
1022 |
1023 |

1024 |
Restricción en la resta del zoom
1025 |
1026 |
1027 | # Resultado
1028 |
1029 | Si llegaste hasta aquí **!Felicidades!**, se ha aprendido las características principales de los diferentes eventos del mouse. Se ha revisado en que momentos se activa y deja de funcionar cada uno de ellos, además de algunas particularidades que tienen los eventos del mouse. En la siguiente clase se van a implementar estos eventos al resto del proyecto para darle una interactividad mayor a la interfaz gráfica de usuario.
1030 |
1031 | # Actividad
1032 |
1033 | Revisa los diferentes tipos de eventos poniendo comentarios a la funcionalidad, particularidades y en que casos no funciona cada uno de estos.
--------------------------------------------------------------------------------
/gifs/MouseClick.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/gifs/MouseClick.gif
--------------------------------------------------------------------------------
/gifs/MouseClickFail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/gifs/MouseClickFail.gif
--------------------------------------------------------------------------------
/gifs/MouseDragged.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/gifs/MouseDragged.gif
--------------------------------------------------------------------------------
/gifs/MouseEntered.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/gifs/MouseEntered.gif
--------------------------------------------------------------------------------
/gifs/MouseExited.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/gifs/MouseExited.gif
--------------------------------------------------------------------------------
/gifs/MouseMoved.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/gifs/MouseMoved.gif
--------------------------------------------------------------------------------
/gifs/MousePressed.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/gifs/MousePressed.gif
--------------------------------------------------------------------------------
/gifs/MouseReleased.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/gifs/MouseReleased.gif
--------------------------------------------------------------------------------
/gifs/MouseWheel.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/gifs/MouseWheel.gif
--------------------------------------------------------------------------------
/gifs/MouseWheelFinal.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CrissUD/InterfazGraficaJavaClase8/e68b7991cd4c0c92bee94055f2f39ccd02c2eff2/gifs/MouseWheelFinal.gif
--------------------------------------------------------------------------------