Introducción a Java 2D y LG3D

Slides:



Advertisements
Presentaciones similares
Manejo de Eventos Visita FIEC.
Advertisements

CJ02 – Técnicas avanzadas en java 1.4 y 5.0
UNIVERSIDAD PRIVADA SAN PEDRO ESCUELA INGENIERIA CIVIL
Características Generales y Entornos de Desarrollo
Interprete o máquina real
Ayudantía Pre-Actividad 5 Multimedios. Ayudantía Pre-Actividad 5 (1) creación de varias clases, y composición (2) manejo de threads (3) manejo de excepciones.
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Curso de java básico (scjp)
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Curso de Java Capitulo 7: Continuación Poo Profesor:
Programación Interactiva Eventos y Swing
Programación Interactiva Introducción a Java
Cetis No. 119 Profa. Graciela Prado Becerra
ÍNDICE Introducción. Trabajar con Applets. Definición de Applet.
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Arquitectura CLARO-TECNOTREE
Orientación a Objetos con Java SE
Conceptos más avanzados de Programación Orientada a Objetos Programación 2005 Licenciatura de Lingüística y Nuevas Tecnologías.
“Programación orientada a Objetos II”
Entornos orientados a objetos
EI, Profesor Ramón Castro Liceaga APLICACIONES DE JAVA CON PAGINAS WEB (Applets) UNIVERSIDAD LATINA (UNILA)
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Algoritmo y Estructura de Datos I I Facultad de Ingeniería y Arquitectura Ing. Juan José Montero Román. Sesión 12 - Introducción.
Programación Orientada a Objetos en Java
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Java Parte II Taller de Sistemas de Programas Enero-Marzo 99 Prof. : Sandra Zabala, Marilenis Olivera Ivette C. Martínez, Pedro García, Alejandra Blanco.
M.C. Juan Carlos Olivares Rojas
HERENCIA.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Figure: Lenguajes. Generaciones de lenguajes de programación.
MouseListener y MouseMotionListener SUSANA CAROLINA VILLA TORRES.
Modificadores.
Aplicaciones GUI en Java
Lic. Rosemary Torrico Bascopé
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
1 TEMA 5. Seguridad en Java 1.Introducción a los Controladores de Seguridad 2.Decidir qué Métodos Sobreescribir del SecurityManager 3.Escribir un Controlador.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Algunos componentes Swing  Clase JComponent.
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
El lenguaje de programación Java
1 TEMA 1. Diseño de interfaces gráficas 1.Introducción 2.Componentes de la interfaz 3.Programación dirigida por eventos 4.Gestores de ubicación 5.Primitivas.
Programación Interactiva Eventos y Swing Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
Patrones Creacionales
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Agustín J. González ELO329/ELO330
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) PROGRAMACION DE INTERFASES.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2008.
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
Hermilia Molina Acevedo
Programación de Interfaces Gráficas en Java
Programación Gráfica Agustín J. González ELO329/ELO330.
1 TEMA 1. Diseño de interfaces gráficas 1.Introducción 2.Componentes de la interfaz 3.Programación dirigida por eventos 4.Gestores de ubicación 5.Primitivas.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
PROGRAMACIÓN ORIENTADA A OBJETOS Unidad 1 GENERICIDAD
Programación de Interfaces Gráficas en Java
22/11/2005 E.T.S de Ingenieros de Telecomunicación - UPNA.1 AWT ABSTRAC WINDOW TOOLKIT.
Manejo de Eventos Visita FIEC FIEC. Eventos En evento es una acción iniciada por el usuario. Ejemplo de eventos son: presionar un botón, cambiar un texto,
Hilos Java Profesor Elian Rojas Berrocal
M.C. Meliza Contreras González.  Se le llama interfaz gráfica al conjunto de componentes gráficos(ventanas, botones, combos, listas, cajas de dialogo,
Clases “ Es una Abstracción de un elemento del mundo real ”
El contexto gráfico La función paint y update nos suministran el contexto gráfico del applet o del componente, en otros casos, hemos de obtener el contexto.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Entorno de Trabajo e Introducción a Java Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 1.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Introducción a Java 2D y LG3D Informática Gráfica Introducción a Java 2D y LG3D Carlos de Tapia Miguel del Corral Aníbal Chehayeb Morán

Índice de Contenidos Java 2D Project Looking Glass (LG3D) La clase JPanel Contexto gráfico Eventos de ratón Eventos de teclado Referencias Project Looking Glass (LG3D) Características API del lado del Cliente Ejemplo Demostración

Java 2D La clase JComponent posee un método denominado paintComponent(), responsable de pintar en pantalla el componente en cuestión. protected void paintComponent(Graphics g) Para crear gráficos 2D se emplea la clase JPanel, subclase de JComponent, redefiniendo de manera adecuada el método paintComponent().

Java 2D Esquema: Primero se debe invocar el método paintComponent() de la superclase. public class Lienzo extends JPanel { protected void paintComponent(Graphics g) { super.paintComponent(g); // ... }

Java 2D Ejemplo1.java: protected void paintComponent(Graphics g) { super.paintComponent(g); int width = (int) getSize().getWidth(); int height = (int) getSize().getHeight(); g.setColor(Color.ORANGE); g.fillRect(0,0,width,height); }

Java 2D El contexto gráfico La clase Graphics de java.awt proporciona las primitivas necesarias para pintar diferentes tipos de elementos (rectángulos, óvalos, cadenas, etc.) sobre el lienzo. drawLine(), drawRect(), fillRect(), drawOval(), fillOval(), drawString() … Además, mantiene información como el color y la fuente empleados get/setColor(), get/setFont()

Java 2D Eventos de ratón La clase Component (del paquete java.awt) proporciona dos métodos que permiten añadir un oyente para capturar los eventos generados por el ratón, incluyendo los eventos de movimiento. void addMouseListener(MouseListener l) void addMouseMotionListener(MouseMotionListener l)

Java 2D La interfaz MouseListener void mouseClicked(MouseEvent e) void mouseEntered(MouseEvent e) void mouseExited(MouseEvent e) void mousePressed(MouseEvent e) void mouseReleased(MouseEvent e) La clase MouseAdapter proporciona una implementación por defecto (esto es, que no hace nada) de todas las operaciones de la interfaz MouseListener.

Java 2D La interfaz MouseMotionListener Como su nombre indica, nos permite capturar aquellos eventos del ratón relacionados con el movimiento del mismo. void mouseDragged(MouseEvent e) void mouseMoved(MouseEvent e) De la misma forma, la clase MouseMotionAdapter proporciona una implementación por defecto de todas las operaciones de la interfaz MouseMotionListener.

Java 2D La clase MouseEvent Proporciona información acerca del evento de ratón que se ha producido. Algunos de sus métodos más usados son: int getX() int getY() Point getPoint() Object getSource(): método heredado de EventObject int getButton(): devuelve alguna se las siguientes constantes: NOBUTTON, BUTTON1, BUTTON2 ó BUTTON3

Java 2D Ejemplo public Lienzo() { super(); addMouseListener( new MyMouseListener() ); } class MyMouseListener extends MouseAdapter { public void mouseClicked(MouseEvent e) { int x = e.getX(); int y = e.getY(); // ... }

Java 2D Ejemplo2.java protected void paintComponent(Graphics g) { … g.setColor( new Color(0x00,0x00,0x00) ); g.setFont( new Font("Arial",Font.ITALIC,18) ); g.drawString("Haz clic aquí",50,50); } class MyMouseListener extends MouseAdapter { public void mouseClicked(MouseEvent event) { System.out.println("coordenada x: " + event.getX() + ", " + "coordenada y: " + event.getY() ); }

Java 2D Ejemplo2.java

Java 2D Eventos de teclado Al igual que con los eventos de ratón, la clase Component proporciona el método addKeyListener() para añadir un oyente que nos permita capturar los eventos de teclado. void addKeyListener(KeyListener l)

Java 2D La interfaz KeyListener void keyPressed(KeyEvent e) void keyReleased(KeyEvent e) void keyTyped(KeyEvent e) KeyAdapter proporciona una implementación por defecto de todas las operaciones de la interfaz KeyListener.

Java 2D Referencias Java 2D API Documentation http://java.sun.com/j2se/1.4/docs/guide/2d/index.html J2 SE 1.5 API Specification http://java.sun.com/j2se/1.5.0/docs/api/ 2D Graphics Tutorial http://java.sun.com/docs/books/tutorial/2d/index.html Java 2D API FAQ http://java.sun.com/products/java-media/2D/forDevelopers/java2dfaq.html Java 2D API Sample Programs http://java.sun.com/products/java-media/2D/samples/suite/index.html

Project Looking Glass Plataforma abierta de Sun Microsystems para explorar interfaces de usuario 3D

Project Looking Glass Major Scene Manager Components

Project Looking Glass Características Arquitectura Cliente/Servidor Grafo de escena C/S permite a varios procesos compartir el mismo universo 3D. Capa de Abstracción de Integración de Aplicaciones Foundation Window System module (FWS): integración con el sistema de ventanas subyacente (AWT, X11). Native Window representation module: capa de abstracción para las aplicaciones. Soporte de aplicaciones 2D

Project Looking Glass API del lado del cliente Java2 SE + Java 3D LG3D API: distinguimos dos niveles: Clases basadas en el Grado de Escena de Java 3D. Clases especializadas de LG3D. Aplicación

Project Looking Glass Ejemplo 1 Sencilla aplicación consistente en representar una caja (box) en pantalla. Paso 1: Creación del contenedor principal de la aplicación (instancia de la clase Frame3D perteneciente al paquete org.jdesktop.lg3d.wg) Frame3D frame3d = new Frame3D();

Project Looking Glass Ejemplo 1 Paso 2: Creación de una caja (instancia de la clase Box del paquete org.jdesktop.lg3d.utils.shape) de 8cm x 6cm x 4cm. SimpleAppearance app = new SimpleAppearance( 0.6f, 0.8f, 0.6f ); Box box = new Box(0.04f, 0.03f, 0.02f, app);

Project Looking Glass Ejemplo 1 Paso 3: Se añade la caja a un contenedor (instancia de la clase Component3D) y éste se añade, a su vez, al frame de la aplicación. Component3D comp = new Component3D(); comp.addChild(box); frame3d.addChild(comp);

Project Looking Glass Ejemplo 1 Paso 4: Inicialización del frame frame3d.setPreferredSize( new Vector3f(0.08f, 0.06f, 0.04f) ); frame3d.changeEnabled(true); frame3d.changeVisible(true);

Project Looking Glass Ejemplo 1: Fichero Tutorial1.java (constructor de la clase) public Tutorial1() { Frame3D frame3d = new Frame3D(); SimpleAppearance app = new SimpleAppearance(0.6f, 0.8f, 0.6f); Box box = new Box(0.04f, 0.03f, 0.02f, app); Component3D comp = new Component3D(); comp.addChild(box); frame3d.addChild(comp); frame3d.setPreferredSize( new Vector3f(0.08f, 0.06f, 0.04f) ); frame3d.changeEnabled(true); frame3d.changeVisible(true); }

Project Looking Glass Ejemplo 1 Paso 5: Paso 6: Para la compilación de las fuentes es necesario incluir en el CLASSPATH el fichero lg3d-core.jar. javac -cp "$LG3DHOME/lib/lg3d-core.jar" Tutorial1.java Paso 6: Crear el .jar con nuestra aplicación. Para ello, se debe incluir: las fuentes, el fichero manifest, el fichero de configuración y los recursos (imágenes, etc.).

Project Looking Glass Ejemplo 1: Fichero de configuración (Tutorial1.lgcfg) <?xml version="1.0" encoding="UTF-8"?> <java version="1.5.0" class="java.beans.XMLDecoder"> <object class="org.jdesktop.lg3d.scenemanager.config.ApplicationDescription"> <void property="exec"> <string>java Tutorial1</string> </void> <void property="iconFilename"> <string>tutorial1.png</string> <void property="name"> <string>Tutorial 1</string> <void property="classpathJars"> <string>Tutorial1.jar</string> </object> </java>

Project Looking Glass Ejemplo 1 Fichero manifest (Tutorial1.MF) Main-Class: Tutorial1 Config-File: Tutorial1.lgcfg (línea en blanco) Creación del .jar jar cmvf Tutorial1.MF Tutorial1.jar Tutorial1.class Tutorial1.lgcfg tutorial1.png Copiar el fichero Tutorial1.jar en el subdirectorio $LG3DHOME/ext/app

Project Looking Glass Ejemplo 1 Paso 7: ejecución de LG3D

Project Looking Glass Referencias (I) Project Looking Glass - A Comprehensive Overview of the Technology https://lg3d-core.dev.java.net/files/documents/1834/30923/LG3D-Overview.pdf Getting Started with the Project Looking Glass Developer’s Release https://lg3d.dev.java.net/lg3d-getting-started.html Project Looking Glass Developer’s Guide https://lg3d.dev.java.net/lg3d-developers-guide.html Project Looking Glass API (pre-Alpha) http://javadesktop.org/lg3d/javadoc/0-7-1-latest/api/ Project Looking Glass Demo Applications https://lg3d-demo-apps.dev.java.net/

Project Looking Glass Referencias (y II) Project Looking Glass Application Tutorial 1 - An introduction to the lg3d framework https://lg3d.dev.java.net/tutorial/tutorial1.html Project Looking Glass Application Tutorial 2 – Simple manipulations and user interactions https://lg3d.dev.java.net/tutorial/tutorial2.html Project Looking Glass Application Tutorial 3 – Complex manipulations and user interaction https://lg3d.dev.java.net/tutorial/tutorial3.html java.net Forums – Project Looking Glass 3D http://forums.java.net/jive/forum.jspa?forumID=80

Introducción a Java 2D y LG3D ¿preguntas?