Proyecto Final
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
488
On Slideshare
482
From Embeds
6
Number of Embeds
1

Actions

Shares
Downloads
13
Comments
0
Likes
0

Embeds 6

http://dannynovillo.blogspot.com 6

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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