SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
F T ra n sf o                                                                                  F T ra n sf o
          PD                   rm                                                                        PD                   rm
      Y                                                                                              Y
 Y




                                                                                                Y
                                er




                                                                                                                               er
ABB




                                                                                               ABB
                          y




                                                                                                                         y
                       bu




                                                                                                                      bu
                                    2.0




                                                                                                                                   2.0
                     to




                                                                                                                    to
                                                      ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                 re
                he




                                                                                                               he
           k




                                                                                                          k
          lic




                                                                                                         lic
                                                      PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                     C
      w                        om                                                                    w                        om
  w




                                                                                                 w
          w.                                                                                             w.
               A B B Y Y.c                                                                                    A B B Y Y.c




                                          ESCUELA POLITECNICA
                                          NACIONAL
                                          Proyecto Final de Programación Orientada a Objetos
                                          Alumno: Danny Novillo

                                          04/11/2009
                                          Septiembre-Marzo
                                          2009 - 2010
F T ra n sf o                                                                           F T ra n sf o
          PD                   rm                                                                 PD                   rm
      Y                                                                                       Y
 Y




                                                                                         Y
                                er




                                                                                                                        er
ABB




                                                                                        ABB
                          y




                                                                                                                  y
                       bu




                                                                                                               bu
                                    2.0




                                                                                                                            2.0
                     to




                                                                                                             to
                                                 ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                          re
                he




                                                                                                        he
           k




                                                                                                   k
          lic




                                                                                                  lic
                                                 PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                              C
      w                        om                                                             w                        om
  w




                                                                                          w
          w.                                                                                      w.
               A B B Y Y.c                                                                             A B B Y Y.c




                                                                               INDICE



                                          1. SINTESIS

                                          2. OBJETIVO

                                          3. MARCO TEORICO

                                             3.1 Herencia

                                             3.2 Arrays

                                             3.3 Tipos de Colecciones

                                                          3.3.1   bit set

                                                          3.3.2   Stack

                                                          3.3.3   Hashtable

                                             3.4 Jerarquía de clases en java

                                             3.5 Concepto de Interfaces Graficas

                                          4. DESARROLLO DEL PROGRAMA

                                                 4.1      Visualización del programa

                                          5. CONCLUSIONES
F T ra n sf o                                                                                                                                 F T ra n sf o
          PD                   rm                                                                                                                       PD                   rm
      Y                                                                                                                                             Y
 Y




                                                                                                                                               Y
                                er




                                                                                                                                                                              er
ABB




                                                                                                                                              ABB
                          y




                                                                                                                                                                        y
                       bu




                                                                                                                                                                     bu
                                    2.0




                                                                                                                                                                                  2.0
                     to




                                                                                                                                                                   to
                                                         ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                                                re
                he




                                                                                                                                                              he
           k




                                                                                                                                                         k
          lic




                                                                                                                                                        lic
                                                         PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                                                    C
      w                        om                                                                                                                   w                        om
  w




                                                                                                                                                w
          w.                                                                                                                                            w.
               A B B Y Y.c                                                                                                                                   A B B Y Y.c




                                          SINTESIS

                                                 Este proyecto trata de un programa que sirve para graficar figuras en un entorno
                                                 amigable para el usuario final el cual puede ajustar sus propios tonos de color y realizar
                                                 cualquier tipo de dibujo o importar un dibujo para modificarlo, grabar los mismos.

                                          OBJETIVO

                                                 Dar a conocer el manejo de las opciones graficas que tiene java para el desarrollo de
                                                 programas en este caso para realizar gráficos, importarlos, modificarlos, y a la vez
                                                 obtener una respuesta correcta de los dispositivos de entrada y salida del ordenador.

                                          MARCO TEÓRICO

                                          Para tener una mejor visión acerca de cómo fue implementado el proyecto daré a conocer
                                          varios conceptos.

                                             ·   Herencia:

                                                         La herencia permite que se pueden definir nuevas clases basadas en clases
                                                         existentes, lo cual facilita re-utilizar código previamente desarrollado.
                                                         Si una clase deriva de otra (extends) hereda todas sus variables y métodos. La
                                                         clase derivada puede añadir nuevas variables y métodos y/o redefinir las
                                                         variables y métodos heredados.

                                                         En Java, a diferencia de otros lenguajes orientados a objetos, una clase sólo
                                                         puede derivar de una única clase, con lo cual no es posible realizar herencia
                                                         múltiple en base a clases. Sin embargo es posible “simular” la herencia
                                                         múltiple en base a las interfaces.

                                             · Arrays

                                                         En este caso vamos a hablar de los arrays pero como almacén de objetos.

                                                         Hay dos características que diferencian a los arrays de cualquier otro tipo
                                                         de colección: eficiencia y tipo. El array es la forma más eficiente que
                                                         Java proporciona para almacenar y acceder a una secuencia de objetos. El
                                                         array es una simple secuencia lineal, que hace que el acceso a los
                                                         elementos sea muy rápido, pero el precio que hay que pagar por esta
                                                         velocidad es que cuando se crea un array su tamaño es fijado y no se
                                                         puede cambiar a lo largo de la vida del objeto. Se puede sugerir la
                                                         creación de un array de tamaño determinado y luego, ya en tiempo de
                                                         ejecución, crear otro más grande, mover todos los objetos al nuevo y
                                                         borrar el antiguo. Esto es lo que hace la clase Vector, pero un Vector es
                                                         menos eficiente que un array, en cuestiones de velocidad.
F T ra n sf o                                                                                                                    F T ra n sf o
          PD                   rm                                                                                                          PD                   rm
      Y                                                                                                                                Y
 Y




                                                                                                                                  Y
                                er




                                                                                                                                                                 er
ABB




                                                                                                                                 ABB
                          y




                                                                                                                                                           y
                       bu




                                                                                                                                                        bu
                                    2.0




                                                                                                                                                                     2.0
                     to




                                                                                                                                                      to
                                                    ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                                   re
                he




                                                                                                                                                 he
           k




                                                                                                                                            k
          lic




                                                                                                                                           lic
                                                    PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                                       C
      w                        om                                                                                                      w                        om
  w




                                                                                                                                   w
          w.                                                                                                                               w.
               A B B Y Y.c                                                                                                                      A B B Y Y.c




                                                    Los otros tipos de colecciones disponibles en Java: Vector, Stack y
                                                    Hashtable; pueden contener cualquier tipo de objeto, sin necesidad de
                                                    que sea de un tipo definido. Esto es así porque tratan a sus elementos
                                                    como si fuesen Object, la clase raíz de todas las clases Java. Esto es
                                                    perfecto desde el punto de vista de que se construye solamente una
                                                    colección, y cualquier tipo de objeto puede ser almacenado en ella. Pero
                                                    aquí es donde los arrays vuelven a ser más eficientes que las colecciones
                                                    genéricas, porque cuando se crea un array hay que indicar el tipo de
                                                    objetos que va a contener. Esto significa que ya en tiempo de
                                                    compilación se realizan comprobaciones para que no se almacene en el
                                                    array ningún objeto de tipo diferente al que está destinado a contener, ni
                                                    que se intente extraer un objeto diferente. Desde luego, Java controlará
                                                    de que no se envíe un mensaje inadecuado a un objeto, ya sea en tiempo
                                                    de compilación como en tiempo de ejecución.

                                                    Así que, tanto por eficiencia como por comprobación de tipos, es mejor
                                                    utilizar un array siempre que se pueda. Sin embargo, cuando se trata de
                                                    resolver un problema más general, los arrays pueden ser muy restrictivos
                                                    y es entonces cuando hay que recurrir a otro tipo de almacenamiento de
                                                    datos.



                                          · Tipos de Colecciones

                                             Con el JDK 1.0 y 1.1 se proporcionaban librerías de colecciones muy básicas,
                                             aunque suficientes para la mayoría de los proyectos. En el JDK 1.2 ya se amplía
                                             esto y, además, las anteriores colecciones han sufrido un profundo rediseño. A
                                             continuación se verán cada una de ellas por separado para dar una idea del
                                             potencial que se ha incorporado a Java.

                                                    Vector

                                                    El Vector es muy simple y fácil de utilizar. Aunque los métodos más
                                                    habituales en su manipulación son addElement() para insertar elementos
                                                    en el Vector, elementAt() para recuperarlos y elements() para obtener una
                                                    Enumeration con el número de elementos del Vector, lo cierto es que
                                                    hay más métodos, pero no es el momento de relacionarlos todos, así que,
                                                    al igual que sucede con todas las librerías de Java, se remite al lector a
                                                    que consulte la documentación electrónica que proporciona Javasoft, para
                                                    conocer los demás métodos que componen esta clase.

                                                    Las colecciones estándar de Java contienen el método toString(), que
                                                    permite obtener una representación en forma de String de sí mismas,
                                                    incluyendo los objetos que contienen. Dentro de Vector, por ejemplo,
                                                    toString() va saltando a través de los elementos del Vector y llama al
                                                    método toString() para cada uno de esos elementos. En caso, por poner
                                                    un ejemplo, de querer imprimir la dirección de la clase, parecería lógico
F T ra n sf o                                                                                                           F T ra n sf o
          PD                   rm                                                                                                 PD                   rm
      Y                                                                                                                       Y
 Y




                                                                                                                         Y
                                er




                                                                                                                                                        er
ABB




                                                                                                                        ABB
                          y




                                                                                                                                                  y
                       bu




                                                                                                                                               bu
                                    2.0




                                                                                                                                                            2.0
                     to




                                                                                                                                             to
                                          ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                          re
                he




                                                                                                                                        he
           k




                                                                                                                                   k
          lic




                                                                                                                                  lic
                                          PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                              C
      w                        om                                                                                             w                        om
  w




                                                                                                                          w
          w.                                                                                                                      w.
               A B B Y Y.c                                                                                                             A B B Y Y.c




                                          referirse a ella simplemente como this (los programadores C++ estarán
                                          muy inclinados a esta posibilidad).

                                          BitSet

                                          Se llama así lo que en realidad es un Vector de bits. Lo que ocurre es que
                                          está optimizado para uso de bits. Bueno, optimizado en cuanto a tamaño,
                                          porque en lo que respecta al tiempo de acceso a los elementos, es
                                          bastante más lento que el acceso a un array de elementos del mismo tipo
                                          básico.

                                          Además, el tamaño mínimo de un BitSet es de 64 bits. Es decir, que si se
                                          está almacenando cualquier otra cosa menor, por ejemplo de 8 bits, se
                                          estará desperdiciando espacio.

                                          En un Vector normal, la colección se expande cuando se añaden más
                                          elementos. En el BitSet ocurre los mismo pero ordenadamente. Se utiliza
                                          el generador de números aleatorios para obtener un byte, un short y un
                                          int, que son convertidos a su patrón de bits e incorporados al BitSet.

                                          Stack

                                          Un Stack es una Pila, o una colección de tipo LIFO (last-in, first-out). Es
                                          decir, lo último que se coloque en la pila será lo primero que se saque.
                                          Como en todas las colecciones de Java, los elementos que se introducen y
                                          sacan de la pila son Object, así que hay que tener cuidado con el moldeo
                                          a la hora de sacar alguno de ellos.

                                          Los diseñadores de Java, en vez de utilizar un Vector como bloque para
                                          crear un Stack, han hecho que Stack derive directamente de Vector, así
                                          que tiene todas las características de un Vector más alguna otra propia ya
                                          del Stack.

                                          Hashtable

                                          Un Vector permite selecciones desde una colección de objetos utilizando
                                          un número, luego parece lógico pensar que hay números asociados a los
                                          objetos. Bien, entonces ¿qué es lo que sucede cuando se realizan
                                          selecciones utilizando otros criterios? Un Stack podría servir de ejemplo:
                                          su criterio de selección es "lo último que se haya colocado en el Stack".
                                          Si rizamos la idea de "selección desde una secuencia", nos encontramos
                                          con un mapa, un diccionario o un array asociativo. Conceptualmente,
                                          todo parece ser un vector, pero en lugar de acceder a los objetos a través
                                          de un número, en realidad se utiliza otro objeto. Esto nos lleva a utilizar
                                          claves y al procesado de claves en el programa. Este concepto se expresa
                                          en Java a través de la clase abstracta Dictionary. El interfaz para esta
                                          clase es muy simple:

                                          ü size(), indica cuántos elementos contiene,
F T ra n sf o                                                                                                                       F T ra n sf o
          PD                   rm                                                                                                             PD                   rm
      Y                                                                                                                                   Y
 Y




                                                                                                                                     Y
                                er




                                                                                                                                                                    er
ABB




                                                                                                                                    ABB
                          y




                                                                                                                                                              y
                       bu




                                                                                                                                                           bu
                                    2.0




                                                                                                                                                                        2.0
                     to




                                                                                                                                                         to
                                                     ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                                      re
                he




                                                                                                                                                    he
           k




                                                                                                                                               k
          lic




                                                                                                                                              lic
                                                     PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                                          C
      w                        om                                                                                                         w                        om
  w




                                                                                                                                      w
          w.                                                                                                                                  w.
               A B B Y Y.c                                                                                                                         A B B Y Y.c




                                                     ü isEmpty(), es true si no hay ningún elemento,
                                                     ü put( Object clave,Object valor), añade un valor y lo asocia con una
                                                         clave
                                                     ü   get( Object clave ), obtiene el valor que corresponde a la clave que se
                                                         indica
                                                     ü   remove( Object clave ), elimina el par clave-valor de la lista
                                                     ü   keys(), genera una Enumeration de todas las claves de la lista
                                                     ü   elements(), genera una Enumeration de todos los valores de la lista



                                          · La jerarquía de clases de Java (API)

                                              Durante la generación de código en Java, es recomendable y casi
                                              necesario tener siempre a la vista la documentación on-line del API de
                                              Java 1.1 ó Java 1.2. En dicha documentación es posible ver tanto la
                                              jerarquía de clases, es decir la relación de herencia entre clases, como
                                              la información de los distintos packages que componen las librerías
                                              base de Java.

                                              Es importante distinguir entre lo que significa herencia y package. Un
                                              package es una
                                              agrupación arbitraria de clases, una forma de organizar las clases. La
                                              herencia sin embargo consisteen crear nuevas clases en base a otras
                                              ya existentes. Las clases incluidas en un package no derivan en general
                                              de la misma clase.

                                              En la documentación on-line se presentan ambas visiones: “Package
                                              Index” y “Class
                                              Hierarchy”. La primera presenta la estructura del API de Java agrupada
                                              por packages, mientras que en la segunda aparece la jerarquía de
                                              clases. Hay que resaltar el hecho de que todas las clases en Java son
                                              derivadas de la clase java.lang.Object, por lo que heredan todos los
                                              métodos y variables de ésta.

                                              Si se selecciona una clase en particular, la documentación muestra una
                                              descripción detallada de todos los métodos y variables de la clase. A su
                                              vez muestra su herencia completa (partiendo de la clase
                                              java.lang.Object).



                                          ·   Concepto de Interface

                                              Una interface es un conjunto de declaraciones de funciones. Si una clase implementa
                                              (implements) una interface, debe definir todas las funciones especificadas por la
                                              interface. Una clase puede implementar más de una interface, representando una
                                              forma alternativa de la herencia múltiple.
F T ra n sf o                                                                                                                             F T ra n sf o
          PD                   rm                                                                                                                   PD                   rm
      Y                                                                                                                                         Y
 Y




                                                                                                                                           Y
                                er




                                                                                                                                                                          er
ABB




                                                                                                                                          ABB
                          y




                                                                                                                                                                    y
                       bu




                                                                                                                                                                 bu
                                    2.0




                                                                                                                                                                              2.0
                     to




                                                                                                                                                               to
                                                      ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                                            re
                he




                                                                                                                                                          he
           k




                                                                                                                                                     k
          lic




                                                                                                                                                    lic
                                                      PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                                                C
      w                        om                                                                                                               w                        om
  w




                                                                                                                                            w
          w.                                                                                                                                        w.
               A B B Y Y.c                                                                                                                               A B B Y Y.c




                                              Una interface puede derivar de otra o incluso de varias interfaces, en cuyo caso
                                              incorpora
                                              todos los métodos de las interfaces de las que deriva.

                                          · Diseño de interfaces gráficas en Java




                                          En si el manejo de una interfaz grafica en java es un poco complicado debido a que las
                                          características de esta plataforma, en el diseño de interfaces gráficas de Java se
                                          implementa el patrón MVC (Modelo Vista Controlador) que, como su definición lo indica,
                                          separa los datos de una aplicación, la interfaz de usuario y la lógica de control en tres
                                          capas distintas. Al hablar de la interfaz de usuario se refiere a la parte de los programas
                                          con la que los usuarios se comunicaran con nuestras aplicaciones, mientras que la lógica
                                          de control se refiere a la forma en la que se ejecutarán las acciones que involucre un
                                          programa. En el MVC se habla de tres niveles en la aplicación, los cuales son el modelo
                                          (que contiene la gestión de los datos y la lógica de negocios), la vista (se ocupa de la
                                          aparición de los componentes de la interfaz de usuario en pantalla) y el controlador (que
                                          gestiona los eventos de entrada generados en la vista).




                                          Además, resulta que en Java nos encontramos con varios conceptos muy interesantes,
                                          como la utilización de ubicaciones relativas en lugar de absolutas para los componentes de
                                          la interfaz gráfica, el contar con diferentes tipos de manejadores para la aparición de estos
                                          componentes y un control de eventos con varias opciones de implementación.

                                          ¿Y por qué Java? Para hacerlo corto diré que por una preferencia personal hacia este
                                          lenguaje, además de sus ya conocidas características: independiente de la plataforma,
F T ra n sf o                                                                                                                             F T ra n sf o
          PD                   rm                                                                                                                   PD                   rm
      Y                                                                                                                                         Y
 Y




                                                                                                                                           Y
                                er




                                                                                                                                                                          er
ABB




                                                                                                                                          ABB
                          y




                                                                                                                                                                    y
                       bu




                                                                                                                                                                 bu
                                    2.0




                                                                                                                                                                              2.0
                     to




                                                                                                                                                               to
                                                      ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                                            re
                he




                                                                                                                                                          he
           k




                                                                                                                                                     k
          lic




                                                                                                                                                    lic
                                                      PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                                                C
      w                        om                                                                                                               w                        om
  w




                                                                                                                                            w
          w.                                                                                                                                        w.
               A B B Y Y.c                                                                                                                               A B B Y Y.c




                                          robusto, versátil, de libre utilización, cuenta con una gran comunidad de desarrolladores y
                                          una serie de aplicaciones IDE entre las que encontramos Eclipse, que es software 100%
                                          libre.

                                          En el título hablo de Java 2, porque fue a partir de la versión 2 de este lenguaje que se dio
                                          un gran cambio en el desarrollo de interfaces gráficas, mejorando los funcionamientos de
                                          los programas por fortuna, pero aumentando un tanto la complejidad de la programación
                                          al introducir la biblioteca de clases Swing, de la que hablaremos más adelante.



                                          La herramienta que utilizaré para los ejemplos es la más reciente versión de Eclipse, es
                                          decir el Eclipse Galileo, que pueden descargar desde la ubicación anterior (es la segunda
                                          opción de la lista, deje este enlace para que puedan seleccionar la descarga según su
                                          sistema operativo).




                                          Hay que señalar que el entorno de desarrollo de Eclipse por defecto no cuenta con un
                                          editor visual para desarrollar interfaces gráficas en Java, por lo que en los ejemplos
                                          crearemos el código completo de la interface, no solo por esta característica del entorno,
                                          sino porque considero muy valioso conocer los detalles de la implementación de la vista y
                                          el controlador de las aplicaciones. Sin embargo, para los que ya sean más veteranos, les
                                          interesará saber que existe un complemento para Eclipse que permite incluir un editor
                                          visual para interfaces gráficas, llamado Visual Editor Proyect. Aunque se encuentra en
                                          desarrollo, ya permite incluir
                                          También pueden revisar esta página que contiene un video-tutorial sobre el desarrollo de
                                          proyectos e interfaces gráficas en Java usando Eclipse, en el cual se incluyen las
                                          instrucciones para emplear el mencionado editor visual de interfaces gráficas.
F T ra n sf o                                                                                                 F T ra n sf o
          PD                   rm                                                                                       PD                   rm
      Y                                                                                                             Y
 Y




                                                                                                               Y
                                er




                                                                                                                                              er
ABB




                                                                                                              ABB
                          y




                                                                                                                                        y
                       bu




                                                                                                                                     bu
                                    2.0




                                                                                                                                                  2.0
                     to




                                                                                                                                   to
                                                        ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                re
                he




                                                                                                                              he
           k




                                                                                                                         k
          lic




                                                                                                                        lic
                                                        PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                    C
      w                        om                                                                                   w                        om
  w




                                                                                                                w
          w.                                                                                                            w.
               A B B Y Y.c                                                                                                   A B B Y Y.c




                                          DESARROLLO DEL PROGRAMA


                                          package paintwdp;

                                          import javax.swing.*;
                                          import java.awt.*;
                                          import javax.swing.event.*;
                                          import java.awt.event.*;
                                          import java.io.*;

                                          public class Colores extends JFrame implements
                                          ChangeListener,ActionListener,MouseListener, MouseMotionListener{


                                                 //Main instancia el frame y le doy caracteristicas
                                                 public static void main(String[]args){
                                                 Colores slider = new Colores();
                                                 slider.setSize(900,450);
                                            slider.setTitle("DIBUJO");
                                            slider.setLocationRelativeTo(null);
                                            slider.setVisible(true);
                                            }

                                                  //Variables que ocupo para revolver colores
                                                  int Menor = 0;
                                            int Mayor = 255;
                                            int medio = 127;
                                            int colorinicial=127;
                                            int uX=0;
                                            int uY=0;
                                            int crojo1=127;
                                            int cazul1=127;
                                            int cverde1=127;
                                            int click=0,c=0,c2=4;

                                            Relog time=new Relog();

                                            //ocupo algunos paneles para los sliders y el area de dibujo
                                            JSlider rojo;
                                            JSlider verde;
                                            JSlider azul;
                                            JPanel panelColor1;
                                            JPanel panelcolor2;
                                            JPanel panelcolor3;
F T ra n sf o                                                                              F T ra n sf o
          PD                   rm                                                                    PD                   rm
      Y                                                                                          Y
 Y




                                                                                            Y
                                er




                                                                                                                           er
ABB




                                                                                           ABB
                          y




                                                                                                                     y
                       bu




                                                                                                                  bu
                                    2.0




                                                                                                                               2.0
                     to




                                                                                                                to
                                                      ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                             re
                he




                                                                                                           he
           k




                                                                                                      k
          lic




                                                                                                     lic
                                                      PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                 C
      w                        om                                                                w                        om
  w




                                                                                             w
          w.                                                                                         w.
               A B B Y Y.c                                                                                A B B Y Y.c




                                          JPanel dibujar;
                                          JPanel cambiacolor;

                                          JButton pre=new JButton("SALIR");
                                          JButton cc=new JButton("Dibujar con Click");
                                          JButton sc=new JButton("Dibujar sin Click");
                                          JButton br=new JButton ("Borrador");
                                          JButton imagen=new JButton("Abrir imagen");
                                          JButton limagen=new JButton("Limpiar imagen");

                                          JLabel r=new JLabel("ROJO   127");
                                          JLabel v=new JLabel("VERDE 127");
                                          JLabel a=new JLabel("AZUL    127");
                                          JLabel img=new JLabel(" ");


                                          //Constructor de mi aplicacion
                                          public Colores(){
                                          Container c;

                                          c=getContentPane();
                                          c.setBackground(Color.WHITE);
                                          c.setLayout(null);

                                          v.setSize(135,20);
                                          v.setLocation(360,55);
                                          v.setFont(new Font("Arial",Font.BOLD,12));
                                          v.setForeground(new Color(0,127,0));
                                          c.add(v);

                                          a.setSize(135,20);
                                          a.setLocation(360,45);
                                          a.setFont(new Font("Arial",Font.BOLD,12));
                                          a.setForeground(new Color(0,0,127));
                                          c.add(a);

                                          r.setSize(135,20);
                                          r.setLocation(360,35);
                                          r.setFont(new Font("Arial",Font.BOLD,12));
                                          r.setForeground(new Color(127,0,0));
                                          c.add(r);

                                          pre.setSize(135,20);
                                          pre.setLocation(360,5);
                                          pre.setFont(new Font("Arial",Font.BOLD,12));
                                          pre.setForeground(Color.BLUE);
                                          c.add(pre);
                                          pre.addActionListener(this);
F T ra n sf o                                                                                                F T ra n sf o
          PD                   rm                                                                                      PD                   rm
      Y                                                                                                            Y
 Y




                                                                                                              Y
                                er




                                                                                                                                             er
ABB




                                                                                                             ABB
                          y




                                                                                                                                       y
                       bu




                                                                                                                                    bu
                                    2.0




                                                                                                                                                 2.0
                     to




                                                                                                                                  to
                                                      ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                               re
                he




                                                                                                                             he
           k




                                                                                                                        k
          lic




                                                                                                                       lic
                                                      PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                   C
      w                        om                                                                                  w                        om
  w




                                                                                                               w
          w.                                                                                                           w.
               A B B Y Y.c                                                                                                  A B B Y Y.c




                                          cc.setSize(135,20);
                                          cc.setLocation(360,85);
                                          cc.setFont(new Font("Arial",Font.BOLD,12));
                                          cc.setForeground(Color.BLUE);
                                          c.add(cc);
                                          cc.addActionListener(this);

                                          sc.setSize(135,20);
                                          sc.setLocation(360,115);
                                          sc.setFont(new Font("Arial",Font.BOLD,12));
                                          sc.setForeground(Color.BLUE);
                                          c.add(sc);
                                          sc.addActionListener(this);

                                          br.setSize(135,20);
                                          br.setLocation(360,145);
                                          br.setFont(new Font("Arial",Font.BOLD,12));
                                          br.setForeground(Color.BLUE);
                                          c.add(br);
                                          br.addActionListener(this);


                                          img.setVisible(false);


                                          imagen.setSize(135,20);
                                          imagen.setLocation(360,175);
                                          imagen.setFont(new Font("Arial",Font.BOLD,12));
                                          imagen.setForeground(Color.BLUE);
                                          c.add(imagen);
                                          imagen.addActionListener(this);

                                          limagen.setSize(135,20);
                                          limagen.setLocation(360,205);
                                          limagen.setFont(new Font("Arial",Font.BOLD,12));
                                          limagen.setForeground(Color.BLUE);
                                          c.add(limagen);
                                          limagen.addActionListener(this);

                                          panelColor1=new JPanel();
                                          panelColor1.setBackground(Color.WHITE);
                                          panelColor1.setBorder(BorderFactory.createTitledBorder("ROJO"));
                                          panelColor1.setSize(100,250);
                                               panelColor1.setLocation(5,5);
                                          c.add(panelColor1);
                                          rojo=createSlider(medio);
                                          panelColor1.add(rojo);

                                          panelcolor2=new JPanel();
F T ra n sf o                                                                                                             F T ra n sf o
          PD                   rm                                                                                                   PD                   rm
      Y                                                                                                                         Y
 Y




                                                                                                                           Y
                                er




                                                                                                                                                          er
ABB




                                                                                                                          ABB
                          y




                                                                                                                                                    y
                       bu




                                                                                                                                                 bu
                                    2.0




                                                                                                                                                              2.0
                     to




                                                                                                                                               to
                                                      ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                            re
                he




                                                                                                                                          he
           k




                                                                                                                                     k
          lic




                                                                                                                                    lic
                                                      PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                                C
      w                        om                                                                                               w                        om
  w




                                                                                                                            w
          w.                                                                                                                        w.
               A B B Y Y.c                                                                                                               A B B Y Y.c




                                          panelcolor2.setBackground(Color.WHITE);
                                          panelcolor2.setBorder(BorderFactory.createTitledBorder("AZUL"));
                                          panelcolor2.setSize(100,250);
                                               panelcolor2.setLocation(125,5);
                                          c.add(panelcolor2);
                                          azul=createSlider(medio);
                                          panelcolor2.add(azul);

                                          panelcolor3=new JPanel();
                                          panelcolor3.setBackground(Color.WHITE);
                                          panelcolor3.setBorder(BorderFactory.createTitledBorder("VERDE"));
                                          panelcolor3.setSize(100,250);
                                               panelcolor3.setLocation(245,5);
                                          c.add(panelcolor3);
                                          verde=createSlider(medio);
                                          panelcolor3.add(verde);

                                          cambiacolor=new JPanel();
                                          cambiacolor.setBackground(new Color(colorinicial,colorinicial,colorinicial));
                                          cambiacolor.setBorder(BorderFactory.createTitledBorder("COLOR MEZCLADO"));
                                          cambiacolor.setSize(300,100);
                                               cambiacolor.setLocation(30,300);
                                          c.add(cambiacolor);

                                          dibujar=new JPanel();
                                          dibujar.setBackground(new Color(colorinicial,colorinicial,colorinicial));
                                          dibujar.setBorder(BorderFactory.createTitledBorder("AREA PARA DIBUJAR"));
                                          dibujar.setBackground(Color.WHITE);
                                          dibujar.setSize(370,380);
                                               dibujar.setLocation(510,20);
                                          c.add(dibujar);

                                          addMouseListener(this);
                                          addMouseMotionListener(this);


                                          }

                                          //Este es el oyente de cambios para los JSliders
                                          public void stateChanged(ChangeEvent e) {
                                               int crojo,cazul,cverde;
                                               //Cambia el valor de los colores con respecto al slider
                                               crojo=rojo.getValue();
                                               cazul=azul.getValue();
                                               cverde=verde.getValue();

                                              //cambia el color de el panel inferior
                                              cambiacolor.setBackground(new Color(crojo,cverde,cazul));
                                              r.setText("ROJO      "+ crojo);
F T ra n sf o                                                                                                                        F T ra n sf o
          PD                   rm                                                                                                              PD                   rm
      Y                                                                                                                                    Y
 Y




                                                                                                                                      Y
                                er




                                                                                                                                                                     er
ABB




                                                                                                                                     ABB
                          y




                                                                                                                                                               y
                       bu




                                                                                                                                                            bu
                                    2.0




                                                                                                                                                                         2.0
                     to




                                                                                                                                                          to
                                                         ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                                       re
                he




                                                                                                                                                     he
           k




                                                                                                                                                k
          lic




                                                                                                                                               lic
                                                         PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                                           C
      w                        om                                                                                                          w                        om
  w




                                                                                                                                       w
          w.                                                                                                                                   w.
               A B B Y Y.c                                                                                                                          A B B Y Y.c




                                                 r.setForeground(new Color(crojo,0,0));

                                                 v.setText("VERDE "+ cverde);
                                                 v.setForeground(new Color(0,cverde,0));

                                                 a.setText("AZUL     "+ cazul);
                                                 a.setForeground(new Color(0,0,cazul));

                                                 crojo1=crojo;
                                                 cazul1=cazul;
                                                 cverde1=cverde;
                                                 }

                                                //escuchador de eventos de los botones
                                                public void actionPerformed(ActionEvent e){
                                                if(e.getSource()==pre){
                                                        System.exit(0);//Sale del sistema
                                                        }
                                                        if(e.getSource()==cc){
                                                        click = 1;//ocupo estas variables para establecer el pinta con o sin click
                                          del mouse
                                                        }
                                                        if(e.getSource()==sc){
                                                        click = 2;//ocupo estas variables para establecer el pinta con o sin click
                                          del mouse
                                                        }

                                                         if(e.getSource()==br){
                                                         click = 3;
                                                         }

                                                         if(e.getSource()==imagen){
                                                         FileDialog fd = new FileDialog(this,"ABRIR",FileDialog.LOAD);
                                               fd.show();
                                               File f = new File( fd.getDirectory(),fd.getFile() );

                                               ImageIcon image = new ImageIcon(f.toString());
                                               dibujar.add(img);
                                               img.setIcon(image);
                                               img.setSize(135,135);
                                               img.setLocation(550,20);
                                               img.setVisible(true);
                                                         }

                                                         if(e.getSource()==limagen){
                                                                 img.setVisible(false);
                                                         }
                                                    }
F T ra n sf o                                                                                                                            F T ra n sf o
          PD                   rm                                                                                                                  PD                   rm
      Y                                                                                                                                        Y
 Y




                                                                                                                                          Y
                                er




                                                                                                                                                                         er
ABB




                                                                                                                                         ABB
                          y




                                                                                                                                                                   y
                       bu




                                                                                                                                                                bu
                                    2.0




                                                                                                                                                                             2.0
                     to




                                                                                                                                                              to
                                                           ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                                           re
                he




                                                                                                                                                         he
           k




                                                                                                                                                    k
          lic




                                                                                                                                                   lic
                                                           PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                                               C
      w                        om                                                                                                              w                        om
  w




                                                                                                                                           w
          w.                                                                                                                                       w.
               A B B Y Y.c                                                                                                                              A B B Y Y.c




                                                      //Estos son los escuchadores de raton y en este caso los ocupo para pintar en el
                                          panel
                                                 public void mousePressed(MouseEvent ev) {}
                                            public void mouseExited(MouseEvent ev) {}
                                            public void mouseReleased(MouseEvent ev) {}
                                            public void mouseClicked(MouseEvent ev) {}
                                            public void mouseEntered(MouseEvent ev) {}


                                            //Si click vale uno entonces se dibuja apretando el boton del mouse
                                            public void mouseDragged(MouseEvent ev) {

                                            if(click==1){

                                                 if(ev.getX()>515&&ev.getX()<880&&ev.getY()>58&&ev.getY()<428){
                                                 int uX = ev.getX();
                                              int uY = ev.getY();
                                              Graphics g=getGraphics();
                                              g.setColor(new Color(crojo1,cverde1,cazul1));
                                              g.fillRect(uX, uY, 3, 3);
                                              g.dispose();

                                              }
                                              }
                                              if(click==3){

                                                 if(ev.getX()>515&&ev.getX()<880&&ev.getY()>58&&ev.getY()<428){
                                                 int uX = ev.getX();
                                              int uY = ev.getY();
                                              Graphics g=getGraphics();
                                              g.setColor(new Color(0,0,0));
                                              g.drawRect(uX, uY, 10, 10);
                                              time.relog(30);
                                              g.setColor(new Color(255,255,255));
                                              g.fillRect(uX, uY, 15, 15);
                                              g.dispose();

                                              }
                                              }

                                                  }


                                            //Si click vale dos entonces se dibuja al pasar el mouse sobre el panel
                                            public void mouseMoved(MouseEvent ev) {

                                                  if(click==2){
F T ra n sf o                                                                                                       F T ra n sf o
          PD                   rm                                                                                             PD                   rm
      Y                                                                                                                   Y
 Y




                                                                                                                     Y
                                er




                                                                                                                                                    er
ABB




                                                                                                                    ABB
                          y




                                                                                                                                              y
                       bu




                                                                                                                                           bu
                                    2.0




                                                                                                                                                        2.0
                     to




                                                                                                                                         to
                                                          ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                      re
                he




                                                                                                                                    he
           k




                                                                                                                               k
          lic




                                                                                                                              lic
                                                          PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                          C
      w                        om                                                                                         w                        om
  w




                                                                                                                      w
          w.                                                                                                                  w.
               A B B Y Y.c                                                                                                         A B B Y Y.c




                                                   if(ev.getX()>515&&ev.getX()<880&&ev.getY()>58&&ev.getY()<428){
                                                int uX = ev.getX();
                                                int uY = ev.getY();
                                                Graphics g=getGraphics();
                                                g.setColor(new Color(crojo1,cverde1,cazul1));
                                                g.fillRect(uX, uY, 3, 3);
                                                g.dispose();

                                                }


                                                }
                                               }
                                               //caracteristicas del los sliders
                                              private JSlider createSlider(int VAL) {
                                                  JSlider sl=new JSlider();
                                                  sl.setOrientation(JSlider.VERTICAL);
                                                  sl.setPaintLabels(true);
                                                  sl.setPaintTicks(true);
                                                  sl.setMinimum(Menor);
                                                  sl.setMaximum(Mayor);
                                                  sl.setValue(VAL);
                                                  sl.setMajorTickSpacing(25);
                                                  sl.setMinorTickSpacing(5);
                                                  sl.addChangeListener(this);
                                                  return sl;
                                                  }




                                          package paintwdp;

                                          public class Relog{
                                                public void relog(int n){

                                                                 //relog
                                                          try{Thread.sleep(n);//milisegundos(1000=1s)
                                                          }
                                                          catch(Exception e){
                                                          }

                                                          //fin relog
                                                    }

                                          }
F T ra n sf o                                                                                                                              F T ra n sf o
          PD                   rm                                                                                                                    PD                   rm
      Y                                                                                                                                          Y
 Y




                                                                                                                                            Y
                                er




                                                                                                                                                                           er
ABB




                                                                                                                                           ABB
                          y




                                                                                                                                                                     y
                       bu




                                                                                                                                                                  bu
                                    2.0




                                                                                                                                                                               2.0
                     to




                                                                                                                                                                to
                                                         ESCUELA POLITÉCNICA NACIONAL
                  re




                                                                                                                                                             re
                he




                                                                                                                                                           he
           k




                                                                                                                                                      k
          lic




                                                                                                                                                     lic
                                                         PROGRAMACION ORIENTADA A OBJETOS
      C




                                                                                                                                                 C
      w                        om                                                                                                                w                        om
  w




                                                                                                                                             w
          w.                                                                                                                                         w.
               A B B Y Y.c                                                                                                                                A B B Y Y.c




                                          }

                                          VISUALIZACIÓN DE LA APLICACIÓN




                                          CONCLUSIONES

                                              ·   Java es una plataforma que brinda grandes posibilidades para el desarrollo de applets
                                                  y el trabajo con interfaces gráficas.

                                              ·   En el desarrollo de la aplicación hay que tomar muy en cuenta las definiciones previas
                                                  expuestas en este informe para evitar confusiones en la interpretación del programa.

                                              ·   Es un programa sencillo y tiene una buena interfaz grafica muy amigable para quién lo
                                                  vaya a utilizar (en especial los niños).

                                              ·   Las funciones y código fuente en general que se utiliza en este programa son sencillos
                                                  para que otros usuarios lo puedan entender y modificarlo en caso que sea necesario.

Más contenido relacionado

La actualidad más candente

Gran diversidad de aves. camino evolutivo. adaptación
Gran diversidad de aves. camino evolutivo. adaptaciónGran diversidad de aves. camino evolutivo. adaptación
Gran diversidad de aves. camino evolutivo. adaptaciónsylviarosa
 
De qué forma argentina está integrando las ti cs en el aula copia
De qué forma argentina está integrando las ti cs en el aula   copiaDe qué forma argentina está integrando las ti cs en el aula   copia
De qué forma argentina está integrando las ti cs en el aula copiainesstic
 
La química en el nivel inicial
La química en el nivel inicialLa química en el nivel inicial
La química en el nivel inicialsylviarosa
 
Manual de facturacion
Manual de facturacionManual de facturacion
Manual de facturacionguest2e2f77
 
3 perfiles
3 perfiles3 perfiles
3 perfilesferemu
 
2 anteproyecto de gestion_documental_2010[1]
2 anteproyecto de gestion_documental_2010[1]2 anteproyecto de gestion_documental_2010[1]
2 anteproyecto de gestion_documental_2010[1]feremu
 
La mejor pc
La mejor pcLa mejor pc
La mejor pcinesstic
 
Ejercicios de comprensión lectora 1
Ejercicios de comprensión lectora 1Ejercicios de comprensión lectora 1
Ejercicios de comprensión lectora 1Santiago Hernandez
 
1 cuadro de_leyes[1][1]
1 cuadro de_leyes[1][1]1 cuadro de_leyes[1][1]
1 cuadro de_leyes[1][1]feremu
 
Entrenamientos pliometricos porteros
Entrenamientos pliometricos porterosEntrenamientos pliometricos porteros
Entrenamientos pliometricos porterosWILLY FDEZ
 
Aporte individual neyla mejia_rojas
Aporte individual neyla mejia_rojasAporte individual neyla mejia_rojas
Aporte individual neyla mejia_rojasYudifero Rojas
 
Mlearning Gkcp
Mlearning GkcpMlearning Gkcp
Mlearning Gkcpu libre
 
Efectividad Personal En 3 Pasos Ocubre 2009 [ Modo De Compatibilidad]
Efectividad  Personal En 3 Pasos  Ocubre 2009 [ Modo De Compatibilidad]Efectividad  Personal En 3 Pasos  Ocubre 2009 [ Modo De Compatibilidad]
Efectividad Personal En 3 Pasos Ocubre 2009 [ Modo De Compatibilidad]Valors & Persones
 

La actualidad más candente (18)

Calida dl
Calida dlCalida dl
Calida dl
 
Gran diversidad de aves. camino evolutivo. adaptación
Gran diversidad de aves. camino evolutivo. adaptaciónGran diversidad de aves. camino evolutivo. adaptación
Gran diversidad de aves. camino evolutivo. adaptación
 
De qué forma argentina está integrando las ti cs en el aula copia
De qué forma argentina está integrando las ti cs en el aula   copiaDe qué forma argentina está integrando las ti cs en el aula   copia
De qué forma argentina está integrando las ti cs en el aula copia
 
La química en el nivel inicial
La química en el nivel inicialLa química en el nivel inicial
La química en el nivel inicial
 
Manual de facturacion
Manual de facturacionManual de facturacion
Manual de facturacion
 
3 perfiles
3 perfiles3 perfiles
3 perfiles
 
2 anteproyecto de gestion_documental_2010[1]
2 anteproyecto de gestion_documental_2010[1]2 anteproyecto de gestion_documental_2010[1]
2 anteproyecto de gestion_documental_2010[1]
 
La mejor pc
La mejor pcLa mejor pc
La mejor pc
 
Ejercicios de comprensión lectora 1
Ejercicios de comprensión lectora 1Ejercicios de comprensión lectora 1
Ejercicios de comprensión lectora 1
 
1 cuadro de_leyes[1][1]
1 cuadro de_leyes[1][1]1 cuadro de_leyes[1][1]
1 cuadro de_leyes[1][1]
 
Soluc. hidrostatica
Soluc. hidrostaticaSoluc. hidrostatica
Soluc. hidrostatica
 
Entrenamientos pliometricos porteros
Entrenamientos pliometricos porterosEntrenamientos pliometricos porteros
Entrenamientos pliometricos porteros
 
Aporte individual neyla mejia_rojas
Aporte individual neyla mejia_rojasAporte individual neyla mejia_rojas
Aporte individual neyla mejia_rojas
 
Manual de entrevista 2
Manual de entrevista 2Manual de entrevista 2
Manual de entrevista 2
 
Mlearning Gkcp
Mlearning GkcpMlearning Gkcp
Mlearning Gkcp
 
Led
LedLed
Led
 
Clase 3
Clase 3Clase 3
Clase 3
 
Efectividad Personal En 3 Pasos Ocubre 2009 [ Modo De Compatibilidad]
Efectividad  Personal En 3 Pasos  Ocubre 2009 [ Modo De Compatibilidad]Efectividad  Personal En 3 Pasos  Ocubre 2009 [ Modo De Compatibilidad]
Efectividad Personal En 3 Pasos Ocubre 2009 [ Modo De Compatibilidad]
 

Similar a Proyecto Final

3.2 taller de talento humano phva[1]
3.2 taller de talento humano phva[1]3.2 taller de talento humano phva[1]
3.2 taller de talento humano phva[1]feremu
 
Los acuerdos de cancún
Los acuerdos de cancúnLos acuerdos de cancún
Los acuerdos de cancúnVidalBanez
 
Andres tohaza 02
Andres tohaza 02Andres tohaza 02
Andres tohaza 02monotohaza
 
Si el Servidor es Ubuntu backup
Si el Servidor es Ubuntu backupSi el Servidor es Ubuntu backup
Si el Servidor es Ubuntu backupMeli Sanchez
 
Tic EducacióN Aprendizaje
Tic EducacióN AprendizajeTic EducacióN Aprendizaje
Tic EducacióN Aprendizajeu libre
 
Folleto texto dramático
Folleto texto dramáticoFolleto texto dramático
Folleto texto dramáticofelipevic
 

Similar a Proyecto Final (14)

Manual de entrevista
Manual de entrevistaManual de entrevista
Manual de entrevista
 
3.2 taller de talento humano phva[1]
3.2 taller de talento humano phva[1]3.2 taller de talento humano phva[1]
3.2 taller de talento humano phva[1]
 
Los acuerdos de cancún
Los acuerdos de cancúnLos acuerdos de cancún
Los acuerdos de cancún
 
MANUAL DE FACTURACION
MANUAL DE FACTURACIONMANUAL DE FACTURACION
MANUAL DE FACTURACION
 
Rotativo
RotativoRotativo
Rotativo
 
Andres tohaza 02
Andres tohaza 02Andres tohaza 02
Andres tohaza 02
 
Led
LedLed
Led
 
Si el Servidor es Ubuntu backup
Si el Servidor es Ubuntu backupSi el Servidor es Ubuntu backup
Si el Servidor es Ubuntu backup
 
Karnaughy quine
Karnaughy quineKarnaughy quine
Karnaughy quine
 
Tic EducacióN Aprendizaje
Tic EducacióN AprendizajeTic EducacióN Aprendizaje
Tic EducacióN Aprendizaje
 
Capitulo i desarrollo
Capitulo i  desarrolloCapitulo i  desarrollo
Capitulo i desarrollo
 
Folleto texto dramático
Folleto texto dramáticoFolleto texto dramático
Folleto texto dramático
 
Energia limpia
Energia limpiaEnergia limpia
Energia limpia
 
Energia limpia
Energia limpiaEnergia limpia
Energia limpia
 

Último

Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfEDILIAGAMBOA
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfsamyarrocha1
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 

Último (20)

Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdf
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Fundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdfFundamentos y Principios de Psicopedagogía..pdf
Fundamentos y Principios de Psicopedagogía..pdf
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 

Proyecto Final

  • 1. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c ESCUELA POLITECNICA NACIONAL Proyecto Final de Programación Orientada a Objetos Alumno: Danny Novillo 04/11/2009 Septiembre-Marzo 2009 - 2010
  • 2. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c INDICE 1. SINTESIS 2. OBJETIVO 3. MARCO TEORICO 3.1 Herencia 3.2 Arrays 3.3 Tipos de Colecciones 3.3.1 bit set 3.3.2 Stack 3.3.3 Hashtable 3.4 Jerarquía de clases en java 3.5 Concepto de Interfaces Graficas 4. DESARROLLO DEL PROGRAMA 4.1 Visualización del programa 5. CONCLUSIONES
  • 3. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c SINTESIS Este proyecto trata de un programa que sirve para graficar figuras en un entorno amigable para el usuario final el cual puede ajustar sus propios tonos de color y realizar cualquier tipo de dibujo o importar un dibujo para modificarlo, grabar los mismos. OBJETIVO Dar a conocer el manejo de las opciones graficas que tiene java para el desarrollo de programas en este caso para realizar gráficos, importarlos, modificarlos, y a la vez obtener una respuesta correcta de los dispositivos de entrada y salida del ordenador. MARCO TEÓRICO Para tener una mejor visión acerca de cómo fue implementado el proyecto daré a conocer varios conceptos. · Herencia: La herencia permite que se pueden definir nuevas clases basadas en clases existentes, lo cual facilita re-utilizar código previamente desarrollado. Si una clase deriva de otra (extends) hereda todas sus variables y métodos. La clase derivada puede añadir nuevas variables y métodos y/o redefinir las variables y métodos heredados. En Java, a diferencia de otros lenguajes orientados a objetos, una clase sólo puede derivar de una única clase, con lo cual no es posible realizar herencia múltiple en base a clases. Sin embargo es posible “simular” la herencia múltiple en base a las interfaces. · Arrays En este caso vamos a hablar de los arrays pero como almacén de objetos. Hay dos características que diferencian a los arrays de cualquier otro tipo de colección: eficiencia y tipo. El array es la forma más eficiente que Java proporciona para almacenar y acceder a una secuencia de objetos. El array es una simple secuencia lineal, que hace que el acceso a los elementos sea muy rápido, pero el precio que hay que pagar por esta velocidad es que cuando se crea un array su tamaño es fijado y no se puede cambiar a lo largo de la vida del objeto. Se puede sugerir la creación de un array de tamaño determinado y luego, ya en tiempo de ejecución, crear otro más grande, mover todos los objetos al nuevo y borrar el antiguo. Esto es lo que hace la clase Vector, pero un Vector es menos eficiente que un array, en cuestiones de velocidad.
  • 4. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c Los otros tipos de colecciones disponibles en Java: Vector, Stack y Hashtable; pueden contener cualquier tipo de objeto, sin necesidad de que sea de un tipo definido. Esto es así porque tratan a sus elementos como si fuesen Object, la clase raíz de todas las clases Java. Esto es perfecto desde el punto de vista de que se construye solamente una colección, y cualquier tipo de objeto puede ser almacenado en ella. Pero aquí es donde los arrays vuelven a ser más eficientes que las colecciones genéricas, porque cuando se crea un array hay que indicar el tipo de objetos que va a contener. Esto significa que ya en tiempo de compilación se realizan comprobaciones para que no se almacene en el array ningún objeto de tipo diferente al que está destinado a contener, ni que se intente extraer un objeto diferente. Desde luego, Java controlará de que no se envíe un mensaje inadecuado a un objeto, ya sea en tiempo de compilación como en tiempo de ejecución. Así que, tanto por eficiencia como por comprobación de tipos, es mejor utilizar un array siempre que se pueda. Sin embargo, cuando se trata de resolver un problema más general, los arrays pueden ser muy restrictivos y es entonces cuando hay que recurrir a otro tipo de almacenamiento de datos. · Tipos de Colecciones Con el JDK 1.0 y 1.1 se proporcionaban librerías de colecciones muy básicas, aunque suficientes para la mayoría de los proyectos. En el JDK 1.2 ya se amplía esto y, además, las anteriores colecciones han sufrido un profundo rediseño. A continuación se verán cada una de ellas por separado para dar una idea del potencial que se ha incorporado a Java. Vector El Vector es muy simple y fácil de utilizar. Aunque los métodos más habituales en su manipulación son addElement() para insertar elementos en el Vector, elementAt() para recuperarlos y elements() para obtener una Enumeration con el número de elementos del Vector, lo cierto es que hay más métodos, pero no es el momento de relacionarlos todos, así que, al igual que sucede con todas las librerías de Java, se remite al lector a que consulte la documentación electrónica que proporciona Javasoft, para conocer los demás métodos que componen esta clase. Las colecciones estándar de Java contienen el método toString(), que permite obtener una representación en forma de String de sí mismas, incluyendo los objetos que contienen. Dentro de Vector, por ejemplo, toString() va saltando a través de los elementos del Vector y llama al método toString() para cada uno de esos elementos. En caso, por poner un ejemplo, de querer imprimir la dirección de la clase, parecería lógico
  • 5. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c referirse a ella simplemente como this (los programadores C++ estarán muy inclinados a esta posibilidad). BitSet Se llama así lo que en realidad es un Vector de bits. Lo que ocurre es que está optimizado para uso de bits. Bueno, optimizado en cuanto a tamaño, porque en lo que respecta al tiempo de acceso a los elementos, es bastante más lento que el acceso a un array de elementos del mismo tipo básico. Además, el tamaño mínimo de un BitSet es de 64 bits. Es decir, que si se está almacenando cualquier otra cosa menor, por ejemplo de 8 bits, se estará desperdiciando espacio. En un Vector normal, la colección se expande cuando se añaden más elementos. En el BitSet ocurre los mismo pero ordenadamente. Se utiliza el generador de números aleatorios para obtener un byte, un short y un int, que son convertidos a su patrón de bits e incorporados al BitSet. Stack Un Stack es una Pila, o una colección de tipo LIFO (last-in, first-out). Es decir, lo último que se coloque en la pila será lo primero que se saque. Como en todas las colecciones de Java, los elementos que se introducen y sacan de la pila son Object, así que hay que tener cuidado con el moldeo a la hora de sacar alguno de ellos. Los diseñadores de Java, en vez de utilizar un Vector como bloque para crear un Stack, han hecho que Stack derive directamente de Vector, así que tiene todas las características de un Vector más alguna otra propia ya del Stack. Hashtable Un Vector permite selecciones desde una colección de objetos utilizando un número, luego parece lógico pensar que hay números asociados a los objetos. Bien, entonces ¿qué es lo que sucede cuando se realizan selecciones utilizando otros criterios? Un Stack podría servir de ejemplo: su criterio de selección es "lo último que se haya colocado en el Stack". Si rizamos la idea de "selección desde una secuencia", nos encontramos con un mapa, un diccionario o un array asociativo. Conceptualmente, todo parece ser un vector, pero en lugar de acceder a los objetos a través de un número, en realidad se utiliza otro objeto. Esto nos lleva a utilizar claves y al procesado de claves en el programa. Este concepto se expresa en Java a través de la clase abstracta Dictionary. El interfaz para esta clase es muy simple: ü size(), indica cuántos elementos contiene,
  • 6. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c ü isEmpty(), es true si no hay ningún elemento, ü put( Object clave,Object valor), añade un valor y lo asocia con una clave ü get( Object clave ), obtiene el valor que corresponde a la clave que se indica ü remove( Object clave ), elimina el par clave-valor de la lista ü keys(), genera una Enumeration de todas las claves de la lista ü elements(), genera una Enumeration de todos los valores de la lista · La jerarquía de clases de Java (API) Durante la generación de código en Java, es recomendable y casi necesario tener siempre a la vista la documentación on-line del API de Java 1.1 ó Java 1.2. En dicha documentación es posible ver tanto la jerarquía de clases, es decir la relación de herencia entre clases, como la información de los distintos packages que componen las librerías base de Java. Es importante distinguir entre lo que significa herencia y package. Un package es una agrupación arbitraria de clases, una forma de organizar las clases. La herencia sin embargo consisteen crear nuevas clases en base a otras ya existentes. Las clases incluidas en un package no derivan en general de la misma clase. En la documentación on-line se presentan ambas visiones: “Package Index” y “Class Hierarchy”. La primera presenta la estructura del API de Java agrupada por packages, mientras que en la segunda aparece la jerarquía de clases. Hay que resaltar el hecho de que todas las clases en Java son derivadas de la clase java.lang.Object, por lo que heredan todos los métodos y variables de ésta. Si se selecciona una clase en particular, la documentación muestra una descripción detallada de todos los métodos y variables de la clase. A su vez muestra su herencia completa (partiendo de la clase java.lang.Object). · Concepto de Interface Una interface es un conjunto de declaraciones de funciones. Si una clase implementa (implements) una interface, debe definir todas las funciones especificadas por la interface. Una clase puede implementar más de una interface, representando una forma alternativa de la herencia múltiple.
  • 7. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c Una interface puede derivar de otra o incluso de varias interfaces, en cuyo caso incorpora todos los métodos de las interfaces de las que deriva. · Diseño de interfaces gráficas en Java En si el manejo de una interfaz grafica en java es un poco complicado debido a que las características de esta plataforma, en el diseño de interfaces gráficas de Java se implementa el patrón MVC (Modelo Vista Controlador) que, como su definición lo indica, separa los datos de una aplicación, la interfaz de usuario y la lógica de control en tres capas distintas. Al hablar de la interfaz de usuario se refiere a la parte de los programas con la que los usuarios se comunicaran con nuestras aplicaciones, mientras que la lógica de control se refiere a la forma en la que se ejecutarán las acciones que involucre un programa. En el MVC se habla de tres niveles en la aplicación, los cuales son el modelo (que contiene la gestión de los datos y la lógica de negocios), la vista (se ocupa de la aparición de los componentes de la interfaz de usuario en pantalla) y el controlador (que gestiona los eventos de entrada generados en la vista). Además, resulta que en Java nos encontramos con varios conceptos muy interesantes, como la utilización de ubicaciones relativas en lugar de absolutas para los componentes de la interfaz gráfica, el contar con diferentes tipos de manejadores para la aparición de estos componentes y un control de eventos con varias opciones de implementación. ¿Y por qué Java? Para hacerlo corto diré que por una preferencia personal hacia este lenguaje, además de sus ya conocidas características: independiente de la plataforma,
  • 8. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c robusto, versátil, de libre utilización, cuenta con una gran comunidad de desarrolladores y una serie de aplicaciones IDE entre las que encontramos Eclipse, que es software 100% libre. En el título hablo de Java 2, porque fue a partir de la versión 2 de este lenguaje que se dio un gran cambio en el desarrollo de interfaces gráficas, mejorando los funcionamientos de los programas por fortuna, pero aumentando un tanto la complejidad de la programación al introducir la biblioteca de clases Swing, de la que hablaremos más adelante. La herramienta que utilizaré para los ejemplos es la más reciente versión de Eclipse, es decir el Eclipse Galileo, que pueden descargar desde la ubicación anterior (es la segunda opción de la lista, deje este enlace para que puedan seleccionar la descarga según su sistema operativo). Hay que señalar que el entorno de desarrollo de Eclipse por defecto no cuenta con un editor visual para desarrollar interfaces gráficas en Java, por lo que en los ejemplos crearemos el código completo de la interface, no solo por esta característica del entorno, sino porque considero muy valioso conocer los detalles de la implementación de la vista y el controlador de las aplicaciones. Sin embargo, para los que ya sean más veteranos, les interesará saber que existe un complemento para Eclipse que permite incluir un editor visual para interfaces gráficas, llamado Visual Editor Proyect. Aunque se encuentra en desarrollo, ya permite incluir También pueden revisar esta página que contiene un video-tutorial sobre el desarrollo de proyectos e interfaces gráficas en Java usando Eclipse, en el cual se incluyen las instrucciones para emplear el mencionado editor visual de interfaces gráficas.
  • 9. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c DESARROLLO DEL PROGRAMA package paintwdp; import javax.swing.*; import java.awt.*; import javax.swing.event.*; import java.awt.event.*; import java.io.*; public class Colores extends JFrame implements ChangeListener,ActionListener,MouseListener, MouseMotionListener{ //Main instancia el frame y le doy caracteristicas public static void main(String[]args){ Colores slider = new Colores(); slider.setSize(900,450); slider.setTitle("DIBUJO"); slider.setLocationRelativeTo(null); slider.setVisible(true); } //Variables que ocupo para revolver colores int Menor = 0; int Mayor = 255; int medio = 127; int colorinicial=127; int uX=0; int uY=0; int crojo1=127; int cazul1=127; int cverde1=127; int click=0,c=0,c2=4; Relog time=new Relog(); //ocupo algunos paneles para los sliders y el area de dibujo JSlider rojo; JSlider verde; JSlider azul; JPanel panelColor1; JPanel panelcolor2; JPanel panelcolor3;
  • 10. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c JPanel dibujar; JPanel cambiacolor; JButton pre=new JButton("SALIR"); JButton cc=new JButton("Dibujar con Click"); JButton sc=new JButton("Dibujar sin Click"); JButton br=new JButton ("Borrador"); JButton imagen=new JButton("Abrir imagen"); JButton limagen=new JButton("Limpiar imagen"); JLabel r=new JLabel("ROJO 127"); JLabel v=new JLabel("VERDE 127"); JLabel a=new JLabel("AZUL 127"); JLabel img=new JLabel(" "); //Constructor de mi aplicacion public Colores(){ Container c; c=getContentPane(); c.setBackground(Color.WHITE); c.setLayout(null); v.setSize(135,20); v.setLocation(360,55); v.setFont(new Font("Arial",Font.BOLD,12)); v.setForeground(new Color(0,127,0)); c.add(v); a.setSize(135,20); a.setLocation(360,45); a.setFont(new Font("Arial",Font.BOLD,12)); a.setForeground(new Color(0,0,127)); c.add(a); r.setSize(135,20); r.setLocation(360,35); r.setFont(new Font("Arial",Font.BOLD,12)); r.setForeground(new Color(127,0,0)); c.add(r); pre.setSize(135,20); pre.setLocation(360,5); pre.setFont(new Font("Arial",Font.BOLD,12)); pre.setForeground(Color.BLUE); c.add(pre); pre.addActionListener(this);
  • 11. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c cc.setSize(135,20); cc.setLocation(360,85); cc.setFont(new Font("Arial",Font.BOLD,12)); cc.setForeground(Color.BLUE); c.add(cc); cc.addActionListener(this); sc.setSize(135,20); sc.setLocation(360,115); sc.setFont(new Font("Arial",Font.BOLD,12)); sc.setForeground(Color.BLUE); c.add(sc); sc.addActionListener(this); br.setSize(135,20); br.setLocation(360,145); br.setFont(new Font("Arial",Font.BOLD,12)); br.setForeground(Color.BLUE); c.add(br); br.addActionListener(this); img.setVisible(false); imagen.setSize(135,20); imagen.setLocation(360,175); imagen.setFont(new Font("Arial",Font.BOLD,12)); imagen.setForeground(Color.BLUE); c.add(imagen); imagen.addActionListener(this); limagen.setSize(135,20); limagen.setLocation(360,205); limagen.setFont(new Font("Arial",Font.BOLD,12)); limagen.setForeground(Color.BLUE); c.add(limagen); limagen.addActionListener(this); panelColor1=new JPanel(); panelColor1.setBackground(Color.WHITE); panelColor1.setBorder(BorderFactory.createTitledBorder("ROJO")); panelColor1.setSize(100,250); panelColor1.setLocation(5,5); c.add(panelColor1); rojo=createSlider(medio); panelColor1.add(rojo); panelcolor2=new JPanel();
  • 12. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c panelcolor2.setBackground(Color.WHITE); panelcolor2.setBorder(BorderFactory.createTitledBorder("AZUL")); panelcolor2.setSize(100,250); panelcolor2.setLocation(125,5); c.add(panelcolor2); azul=createSlider(medio); panelcolor2.add(azul); panelcolor3=new JPanel(); panelcolor3.setBackground(Color.WHITE); panelcolor3.setBorder(BorderFactory.createTitledBorder("VERDE")); panelcolor3.setSize(100,250); panelcolor3.setLocation(245,5); c.add(panelcolor3); verde=createSlider(medio); panelcolor3.add(verde); cambiacolor=new JPanel(); cambiacolor.setBackground(new Color(colorinicial,colorinicial,colorinicial)); cambiacolor.setBorder(BorderFactory.createTitledBorder("COLOR MEZCLADO")); cambiacolor.setSize(300,100); cambiacolor.setLocation(30,300); c.add(cambiacolor); dibujar=new JPanel(); dibujar.setBackground(new Color(colorinicial,colorinicial,colorinicial)); dibujar.setBorder(BorderFactory.createTitledBorder("AREA PARA DIBUJAR")); dibujar.setBackground(Color.WHITE); dibujar.setSize(370,380); dibujar.setLocation(510,20); c.add(dibujar); addMouseListener(this); addMouseMotionListener(this); } //Este es el oyente de cambios para los JSliders public void stateChanged(ChangeEvent e) { int crojo,cazul,cverde; //Cambia el valor de los colores con respecto al slider crojo=rojo.getValue(); cazul=azul.getValue(); cverde=verde.getValue(); //cambia el color de el panel inferior cambiacolor.setBackground(new Color(crojo,cverde,cazul)); r.setText("ROJO "+ crojo);
  • 13. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c r.setForeground(new Color(crojo,0,0)); v.setText("VERDE "+ cverde); v.setForeground(new Color(0,cverde,0)); a.setText("AZUL "+ cazul); a.setForeground(new Color(0,0,cazul)); crojo1=crojo; cazul1=cazul; cverde1=cverde; } //escuchador de eventos de los botones public void actionPerformed(ActionEvent e){ if(e.getSource()==pre){ System.exit(0);//Sale del sistema } if(e.getSource()==cc){ click = 1;//ocupo estas variables para establecer el pinta con o sin click del mouse } if(e.getSource()==sc){ click = 2;//ocupo estas variables para establecer el pinta con o sin click del mouse } if(e.getSource()==br){ click = 3; } if(e.getSource()==imagen){ FileDialog fd = new FileDialog(this,"ABRIR",FileDialog.LOAD); fd.show(); File f = new File( fd.getDirectory(),fd.getFile() ); ImageIcon image = new ImageIcon(f.toString()); dibujar.add(img); img.setIcon(image); img.setSize(135,135); img.setLocation(550,20); img.setVisible(true); } if(e.getSource()==limagen){ img.setVisible(false); } }
  • 14. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c //Estos son los escuchadores de raton y en este caso los ocupo para pintar en el panel public void mousePressed(MouseEvent ev) {} public void mouseExited(MouseEvent ev) {} public void mouseReleased(MouseEvent ev) {} public void mouseClicked(MouseEvent ev) {} public void mouseEntered(MouseEvent ev) {} //Si click vale uno entonces se dibuja apretando el boton del mouse public void mouseDragged(MouseEvent ev) { if(click==1){ if(ev.getX()>515&&ev.getX()<880&&ev.getY()>58&&ev.getY()<428){ int uX = ev.getX(); int uY = ev.getY(); Graphics g=getGraphics(); g.setColor(new Color(crojo1,cverde1,cazul1)); g.fillRect(uX, uY, 3, 3); g.dispose(); } } if(click==3){ if(ev.getX()>515&&ev.getX()<880&&ev.getY()>58&&ev.getY()<428){ int uX = ev.getX(); int uY = ev.getY(); Graphics g=getGraphics(); g.setColor(new Color(0,0,0)); g.drawRect(uX, uY, 10, 10); time.relog(30); g.setColor(new Color(255,255,255)); g.fillRect(uX, uY, 15, 15); g.dispose(); } } } //Si click vale dos entonces se dibuja al pasar el mouse sobre el panel public void mouseMoved(MouseEvent ev) { if(click==2){
  • 15. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c if(ev.getX()>515&&ev.getX()<880&&ev.getY()>58&&ev.getY()<428){ int uX = ev.getX(); int uY = ev.getY(); Graphics g=getGraphics(); g.setColor(new Color(crojo1,cverde1,cazul1)); g.fillRect(uX, uY, 3, 3); g.dispose(); } } } //caracteristicas del los sliders private JSlider createSlider(int VAL) { JSlider sl=new JSlider(); sl.setOrientation(JSlider.VERTICAL); sl.setPaintLabels(true); sl.setPaintTicks(true); sl.setMinimum(Menor); sl.setMaximum(Mayor); sl.setValue(VAL); sl.setMajorTickSpacing(25); sl.setMinorTickSpacing(5); sl.addChangeListener(this); return sl; } package paintwdp; public class Relog{ public void relog(int n){ //relog try{Thread.sleep(n);//milisegundos(1000=1s) } catch(Exception e){ } //fin relog } }
  • 16. F T ra n sf o F T ra n sf o PD rm PD rm Y Y Y Y er er ABB ABB y y bu bu 2.0 2.0 to to ESCUELA POLITÉCNICA NACIONAL re re he he k k lic lic PROGRAMACION ORIENTADA A OBJETOS C C w om w om w w w. w. A B B Y Y.c A B B Y Y.c } VISUALIZACIÓN DE LA APLICACIÓN CONCLUSIONES · Java es una plataforma que brinda grandes posibilidades para el desarrollo de applets y el trabajo con interfaces gráficas. · En el desarrollo de la aplicación hay que tomar muy en cuenta las definiciones previas expuestas en este informe para evitar confusiones en la interpretación del programa. · Es un programa sencillo y tiene una buena interfaz grafica muy amigable para quién lo vaya a utilizar (en especial los niños). · Las funciones y código fuente en general que se utiliza en este programa son sencillos para que otros usuarios lo puedan entender y modificarlo en caso que sea necesario.