Curso de Programación galia.fc.uaslp.mx/~medellin/IntProg.htm

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

CONSTRUYENDO UNA PÁGINA WEB CON HTML. Introducción Construir una página web de sólo contenido es relativamente fácil La forma de abordarlo es sistémica.
Programando con Hilos POSIX* Intel Software College.
Programación con OpenMP* Intel Software College. Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or.
Desarrollo de proyectos WEBDiseño de Interaccion Dise ñ o WEB Extraído de: Ray, K y Amy, S. (1998). Diseño interactivo. España, Anaya Multimedia.
Redes de Datos Fundamentos Básicos. Telecomunicaciones y Redes de Datos Las telecomunicaciones hoy La convergencia entre telecomunicaciones e informática.
Ciclo de Preparación para la Jubilación
Eurowin 2013 Gestión de Proyectos y Obras
Productos notables..
Manual de uso para el sistema de pago en línea de
Uso de los corchetes ¿Qué hago si entre una columna y la siguiente no se visualiza todo el texto?
Lenguajes de Programación Soluciones a pruebas de nivel
Conectores gramaticales
copyright teddy gauthier
INTEGRIDAD, INTEGRIDAD REFERENCIAL
Nuevo sistema de alertas Gloria Guirado Departamento de formación de VCG.
Examen FRAD Empezar. 1. ¿Cu á l es la diferencia entre FRAD y FRANAR? 1.FRAD son las siglas de un grupo de trabajo de OCLC y FRANAR las siglas de un grupo.
Bases para la programación por objetos
Microsoft Office Power Point, es una herramienta que nos proporciona Microsoft, para editar presentaciones graficas, de tal forma que se nos feliciten.
Instrucciones de Estudios de física a través de Edcanvas.
Una Descripción General de Scitation Scitation es una plataforma de alojamiento en Internet a cargo del American Institute of Physics (AIP) (El Instituto.
Bases Electrónicas de Datos 2013 Coordinación General del Sistema Universitario de Bibliotecas Académicas Unidad de Servicios Bibliotecarios.
Libro de Clases Electrónico Administrativo OTEC
EPI-Control Programa para la Vigilancia Epidemiológica Hospitalaria Ampliada y el Control de Infecciones Versión 7.0 Contacto Teléfono.
Instrumentación Industrial
LUIS GONZALES SÁNCHEZ RESPONSABLE PROCESO DE REGISTRO DE DNI DE ESTUDIANTES UNIDAD DE GESTIÓN EDUCATIVA LOCAL LAMAS UNIDAD EJECUTORA 305.
Base de datos y Microsoft Access
Entrada y salida Fundamentos de programación/Programación I
ERASMO AGUILAR SIG FARQ UNI
EL SISTEMA OPERATIVO Presentación realizada por Virgilio Marco Aparicio Profesor de Apoyo al Área Práctica. IES Tiempos Modernos. ZARAGOZA.
G OBIERNO DEL E STADO DE S ONORA MANUAL PARA SUPERVISORES SISTEMA DE ADMINISTRACIÓN VIRTUAL DEL PROGRAMA ESCUELAS DE CALIDAD SECRETARÍA DE E DUCACIÓN Y.
XAGUAR AUTOMATION Xaguar Automation es una empresa Mexicana dedicada a la solución de problemáticas, orientadas al sector industrial en el área de automatización.
Información General de AGORA. ¿Qué es AGORA? AGORA = Access to Global Online Research in Agriculture (Acceso a la investigación mundial en línea en el.
Visual basic Curso de Habilitación Laboral IV. ¿Qué es Visual Basic Visual Basic es uno de los tantos lenguajes de programación que podemos encontrar.
Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar las variables.
Avances de Microsoft PowerPoint y Office
Guía Básica de HTML.
Lo primero que tenemos que tener claro es donde vamos a instalar el ordenador. Es cierto que no siempre se puede elegir el sitio, pero mientras que sea.
Descarga: En la pagina principal usted podra descargar el programa Skype : DIAPOSITIVA 1 Clic para Descargar El programa Clic para Descargar El instructivo.
MANUAL BÁSICO DE MICROSOFT WORD.
Ud.8 Aplicaciones ofimáticas Índice del libro Índice del libro.
MS Tutorial de Medidores RQ Consultoría Técnica, S de RL de CV Revisión 27 Septiembre 2008 Este Turorial le ayudará a entender: 1.¿Que es un medidor?
GIMP (iniciales de GNU Image Manipulation Program. Es un software de libre distribución, apropiado para tareas tales como retoque fotográfico, composición.
TALLER BÁSICO DE VISUAL BASIC Por: Juan Alfredo Garduño Arias.
Autodesk INVENTOR 2010.
RECURSOS ESTÁTICOS. Recursos estáticos Activamos edición para poder añadir recursos Nombre corto Entramos en el curso.
CENTRO DE BACHILLERATO TECNOLOGICO INDUSTRIAL Y DE SERVIVCIOS No 3
Taller de computación para niños
Sandra Muñoz Blanca González Patricia Lázaro
CONSTRUCCIÓN Y ARQUITECTURA DEL SOFTWARE
Por Almudena Ramos Machín
UML Lenguaje Unificado de Construcción de Modelos
El BLOCK DE APUNTES – ADIESTRAMIENTO FUERA DEL AULA los acompañará diariamente | tendrá un formato definido por la cátedra, acordado con los alumnos |
Prof. Fidel Gonzales Quincho
Pilas Laboratorio de Programación II. Definición de pila Consideremos una pila de platos: Si se añade un plato a la pila, los que están más abajo son.
Pasos para realizar la declaración Jurada de Patrimonio Has clic en el botón naranja para iniciar el registro de datos Para llenar la planilla debe utilizar.
Studio7i - Alquiler de salas de ensayo musical poo-rentalmusic
Animaciones en la Web Animación GIF Animación Shockwave Flash
La mayor parte de la edición de imágenes de vídeo consiste en seleccionar, ordenar y recortar videoclips, o en conectar los distintos clips con efectos.
Tema 5 – Relaciones Laborales
O Skydrive o Características Características o Privacidad Privacidad o App App o Ventajas Ventajas o Desventajas Desventajas o Movie Maker Movie Maker.
Las consultas. Son cuadros de información generados a partir de datos relacionados encontrados en otras tablas que se utilizan para filtrar, ver, modificar.
Capítulo 3 Fundamentos de Programación
Procedimientos Almacenados y Disparadores
PL/SQL Francisco Moreno Universidad Nacional. Funciones Si un procedimiento tiene solo un parámetro de salida, se puede remplazar por una función y esta.
1 Entrada/Salida en Java Jaime Ramírez, Ángel Lucas González DLSIIS. Facultad de Informática Universidad Politécnica de Madrid.
ESTRUCTURAS DE CONTROL
Circuitos Digitales II
1.Tecnología Java Instaladores necesarios Jdk->Para Desarrollo
Middleware Java 2 Enterprise Edition
Transcripción de la presentación:

Curso de Programación galia.fc.uaslp.mx/~medellin/IntProg.htm Fundamentos de Java Curso de Programación galia.fc.uaslp.mx/~medellin/IntProg.htm

OBJETIVOS Identificar los componentes básicos de los programas Java. Distinguir dos tipos de programa Java: aplicaciones y applets. Escribir aplicaciones Java sencillas y applets sencillos. Describir la diferencia entre la declaración y la creación de objetos. Describir el proceso de crear y ejecutar programas Java. Usar las clases ventanaPrincipal y CuadroMensaje del paquete javabook para escribir aplicaciones Java. Usar la clave Graphics del paquete estándar de Java.

La primera aplicación Java Un programa orientado a objetos usa objetos. /* Programa MiPrimeraAplicacion Este programa muestra una ventana en la pantalla. La ventana se sitúa en el centro de la pantalla, y el tamaño de la ventana sera casi el de esta. */ import javabook.*; class MiPrimeraAplicacion { public static void main (String[] args) { MainWindow ventanaPrincipal; ventanaPrincipal = new MainWindow( );// Crea y ventanaPrincipal.show() ;//muestra una ventana }

El diagrama de objetos del programa MiPrimeraAplicacion ventanaPrincipal MainWindow main show

Uso de objetos Para usar un objeto en un programa, se debe declarar y crear el objeto primero y, después enviarle mensajes.

Declaración de objetos La declaración de un objeto se hace siguiendo la siguiente sintaxis: <nombre de la clase> <nombre del objeto>; Nombre de clase Debe ser definido en alguna parte. Nombre de Objeto Aquí se declara un objeto. MainWindow ventanaPrincipal;

Validez de identificadores Un identificador es una secuencia de letras y dígitos cuyo primer carácter es siempre una letra. Se usa un identificador para dar nombre a una clase, un objeto, un método u otros componentes. Identificadores válidos: MiPrimeraAplicacion Diversion AreaCalculo Identificadores no válidos: Mi Primera Aplicacion Progarma Diversión Area Calculo

Convención de nombrado Se sigue la convención de nombres de, mayúscula para la primera letra de los nombres de clase y una letra minúscula para la primera letra de los nombres de objetos. Es importante seguir la convención estándar de nombrado de forma que otros puedan leer sus programas y distinguir fácilmente el propósito de los identificadores. Los programas que siguen la convención de nombrado estándar son más fáciles de leer que aquellos que no la siguen. Siga la convención de nombrado estándar cuando escriba sus programas de Java para hacerlos más fácilmente legibles.

Creación de objetos Sintaxis de creación de objetos: <nombre de objeto = new <nombre de clase> ( <argumentos>); Nombre de Objeto Nombre del objeto que se está creando. Nombre de Clase Se crea una instancia de esta clase. Argumento Aquí no se usan argumentos. ventanaPrincipal = new MainWindow ( );

Declaración y creación de un objeto Estado de la memoria después de ejecutar A A Cuenta cuenta; cuenta cuenta = new Cuenta( ); Se declara el identificador cuenta y se asigna espacio en memoria. Cuenta cuenta; después de ejecutar B B cuenta = new Cuenta( ); cuenta Cuenta Se crea un objeto Cuenta y se le asigna un identificador cuenta.

Envío de Mensajes Después de que se ha creado el objeto, se puede comenzar a enviarle mensajes. La sintaxis para enviar un mensaje a un objeto es <nombre de objeto>.<nombre de método>(<argumentos>); donde <nombre de objeto> es un nombre de objeto, <nombre de método> es un nombre de método del objeto y <argumentos> es una secuencia de valores que se pasan al método. ventanaPrincipal.setVisible(true); Nombre de Objeto Nombre del objeto al que se le envía el mensaje Agumento Argumernto que se Pasa con el mensaje Nombre de Método Nombre del mensaje que se envía

Creación repetida de un objeto Custumer cliente; cliente = new Custumer(); cliente = new Custumer(); cliente Costumer Costumer Creado por el primer new El primer objeto cliente se desasignará eventualmente porque no hay ninguna referencia al mismo. Creado por el segundo new

Preguntas rápidas 1. ¿Cuáles de los siguientes identifícadores son inválidos? a. Uno e. Hola b. mi Ventana f. JAVA c. 1234 g. hola, ahí d. acctl22 h. DecafeLattePlease 2. ¿Qué está equivocado en el código siguiente? VentanaPrincipal ventanaPrincipal( ) ; ventanaPrincipal.show( ) ; 3. ¿Hay algo equivocado en las siguientes declaraciones? ventanaPrincipal VentanaPrincipal; Cuenta, Cliente cuenta, cliente; 4. ¿Cuál de las siguientes sentencias es válida? a. ventanaPrincipal.setVisible( "true" ); b. ventanaPrincipal.setVisible( true );

Componentes de un programa Un programa Java se compone de comentarios, sentencias y declaraciones de clase. Aunque no son necesarios para ejecutar el programa, los comentarios son indispensables para escribir código fácil de comprender.

Comentarios /* Esto es un comentario con tres líneas de texto. */ // Esto es un comentario // Esto es otro comentario // Esto es un tercer comentario

Comentarios javadoc Es un comentario especializado que puede aparecer antes de la declaración de clase y de cualquier otro elemento de programa. Los comentarios javadoc comienzan con la marca /** y terminan con la marca */. Aquí hay un ejemplo de un comentario javadoc: /** * Esta clase proporciona funciones básicas de reloj. * Ademas de para leer la hora actual y la fecha de hoy, * se puede usar esta clase para funciones de * cronometro. */

Más información de javadoc Se puede encontrar más información sobre javadoc, y páginas web de documentación de ejemplo generadas a partir de javadoc, en www.drCaffeine.com/supportinfo/javadoc.html., puede obtener una documentación completa de las clases estándares de Java generadas a partir de comentarios javadoc en www.java.sun.com/j2ee/j2sdkee/techdocs/api/.

Ejemplo de javadoc * Programa: EditorTexto * * Autor: C. Thomas Wu * ctwu@cs.nps.navy.mil * * Curso: comp.. Sci. 101 * Spring 2000 * Programa asignado num. 7 * Compilador: JDK 1.2. * Plataforma: Windows 98 * * Descripción: * Editor de texto sencillo. Permite al usuario salvar texto * a un archivo y leer de un archivo. Muestra el texto usando * únicamente fuentes Courier y no permite dar formato al texto * (por ejemplo, negrita, itálica, etc.). El editor proporciona * funciones de edición estándares como Cut, Copy y Paste, pero * no tiene Undo. Para mas detalles consulte, por favor, el * archivo TxEditReadme. */

Utilidad de los comentarios Las marcas de comentarios son útiles para desactivar una porción de un programa. Suponga que encuentra una porción de un programa que puede estar causando un problema y hace que el programa falle, se puede intentar eliminar el código que da lugar al problema. En lugar de reemplazar la parte problemática completa con un código nuevo, se puede dejar el código cuestionable dentro del programa convirtiéndolo en un "comentario" mediante el uso de marcas de comentario. Si necesita el código más tarde, sólo tiene que eliminar las marcas de comentarlos.

Sentencia Import Para usar una clase de un paquete, se puede referir a la clase dentro de su programa usando el siguiente formato: <nombre de paquete>.<nombre de clase> Por ejemplo, para usar la clase VentanaPrincipal del paquete javabook, se indica como javabook.VentanaPrincipal que se debe leer como "javabook punto VentanaPrincipal". Esta notación es la que se denomina notación puntuada o punto. Un paquete puede incluir subpaquetes, definiendo una jerarquía de paquetes. Cuando hay que referirse a una clase dentro de un paquete profundamente anidado, se usan múltiples puntos. Por ejemplo, se escribe java.awt.image.ColorModel para referirse a la clase ColorModel dentro del paquete java.awt.image.

Nombres completamente calificados La notación puntuada con los nombres de todos los paquetes a los que pertenece la clase se denomina el nombre completamente calificado de la clase. Una sentencia import al principio de su programa elimina la necesidad de usar nombres completamente calificados. import java.awt.image.ColorModel; Se puede importar todas las clases usando la notación asterisco: import <nombre de paquete>.*;

Declaración de clases La sintaxis para declarar una clase es class <nombre de clase> { <declaraciones de miembros de la clase> } donde <nombre de clase> es el nombre de la clase y <declaraciones de miembros de la clase> es una secuencia de declaraciones de miembros de la clase. La palabra class es una palabra reservada que se usa para indicar el principio de una declaración de clase. Un miembro de clase puede ser o bien un valor de datos o un método. Se puede usar cualquier identificador válido para dar nombre a la clase.

Declaración de métodos La sintaxis para la declaración de método es <modificadores> <tipo devuelto> <nombre de método> (<parámetros>) { <cuerpo del método> } <modificadores> - secuencia de términos para designar distintos tipos de métodos <tipo devuelto> - tipo de valor de datos devuelto por un método <nombre de método> - nombre de un método <parámetros> - es una secuencia de valores que se pasan al método <cuerpo del método> - es una secuencia de instrucciones.

Declaración de método Esta declaración crea el /* Programa MiPrimeraAplicacion Este programa muestra una ventana en la pantalla. La ventana se sitúa en el centro de la pantalla, y el tamaño de la ventana sera casi el de esta. */ import javabook.*; class MiPrimeraAplicacion { public static void main (String[] args) { MainWindow ventanaPrincipal; ventanaPrincipal = new MainWindow( );// Crea y ventanaPrincipal.show() ;//muestra una ventana } } Declaración de método Esta declaración crea el método main.

Cuerpo del método Formado por una secuencia de instrucciones Nombre del método Tipo de vuelta Parámetros Modificador Modificador public static void main (String[] args) { MainWindow ventanaPrincipal; ventanaPrincipal = new MainWindow( );// Crea y ventanaPrincipal.show() ;//muestra una ventana } Cuerpo del método Formado por una secuencia de instrucciones

Preguntas rápidas 1. Denomine los tres componentes de un programa Java. 2. Localice los tres componentes del programa en el programa Diversión del Capítulo 1. 3. Compare Diversión y MiPrimeraAplicacion y haga una lista de las similitudes diferencias.

Plantilla para aplicaciones Java sencillas Comentario Sentencia import class Nombre de Clase public static void main(String[] args) Cuerpo de método

Ciclo edición-compilación-ejecución MiPrimeraAplicacion.java MiPrimeraAplicacion.class /* Programa MiPrimeraAplicacion Este programa muestra una ventana en la pantalla. La ventana se sitúa en el centro de la pantalla, y el tamaño de la ventana sera casi el de esta. */ import javabook.*; class MiPrimeraAplicacion { public static void main (String[] args) { MainWindow ventanaPrincipal; ventanaPrincipal = new MainWindow( );// Crea y ventanaPrincipal.show() ;//muestra una ventana } } 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 Editor Compilador Interprete Paso 1 Paso 2 Paso 3 (archivo fuente) (archivo objeto) Edit, Notepad, etc. javac java Programa en ejecución

El paquete javabook Para ser un buen programador de lenguajes orientados a objetos, uno debe primero aprender cómo usar clases predefinidas. Las clases predefinidas de javabook tiene las siguientes ventajas: 1. Le proporciona una pequeña muestra de cómo se desarrollan los programas del mundo real. 2. Minimiza el impacto de la sintaxis y la semántica del lenguaje de programación. 3. Le permite escribir programas prácticos sin aprender demasiados detalles del lenguaje Java. 4. Sirve como un buen ejemplo de diseño de clases.

Ejemplo Definición del problema Los desarrollos empiezan con una definición del problema. La definición del problema para nuestros programas de ejemplo será corta, variando entre una sentencia y un párrafo, pero la definición del problema para las aplicaciones avanzadas y complejas puede contener muchas páginas. Escriba una aplicación que muestre el mensaje Me Gusta Java.

Ejemplo Diseño En la etapa de diseño, se traduce la definición del problema dado en un documento de diseño que se puede implementar. Para los programas orientados a objetos, un documento de diseño incluirá una lista de clases. Las clases del documento de diseño son clases predefinidas hechas por el usuario. Para cada clase en la lista, se identifica su objetivo, los métodos y valor de datos que serán definidos en ella, las suposiciones hechas para su uso y algunas cosas más.

Diseño Documento diseño: MostrarMensaje Clase Propósito MostrarMensaje La clase principal del programa. MainWindow Marco de ventana principal del programa. El título se define para MostrarMensaje. Esta clase es de javabook. MessageBox Diálogo para mostrar el mensaje pedido. Clase de javabook.

Diagrama de objetos ventanaPrincipal MostrarMensaje MainWindow show cuadroMensaje MessageBox show

Codificación /* Programa MostrarMensaje El programa muestra el texto "Me gusta Java". El programa utiliza un objeto MessageBox del paquete javabook para mostrar el texto. */ import javabook.*; class MostrarMensaje { public static void main(String args[]) { // se declaran dos objetos MainWindow ventanaPrincipal; MessageBox cuadroMensaje; // se crean dos objetos ventanaPrincipal = new MainWindow("Mostrar mensaje"); cuadroMensaje = new MessageBox(ventanaPrincipal); // se hacen visibles los dos objetos: // primero el marco (ventana principal) // y después el dialogo con el mensaje ventanaPrincipal.show(); cuadroMensaje.show("Me gusta Java"); } }

Applets Comentario Sentencias import Declaración de clase /* Programa MiPrimerApplet Un applet que muestra el texto "Me gusta Java“ y un rectangulo rodeando al texto. */ import java.applet.*; import java.awt.*; public class MiPrimerApplet extends Applet { public void paint(Graphics g) { g.drawString("Me gusta Java",70,70); g.drawRect(50,50,130,30); } } Sentencias import Declaración de clase

Diagrama de objetos del applet AppletViewer MiPrimerApplet main Graphics paint

Subclase de applet Una subclase de Applet se declara como: public class <subclase de applet> extends applet { <declaraciones de miembros de la clase> } Applet MiPrimerApplet

Pasos para ejecutar un applet Edit, Notepad, etc. MiPrimerApplet.java MiPrimerApplet.class /* Programa MiPrimerApplet Un applet que muestra el texto "Me gusta Java“ y un rectangulo rodeando al texto. */ import java.applet.*; import java.awt.*; public class MiPrimerApplet extends Applet { public void paint(Graphics g) { g.drawString("Me gusta Java",70,70); g.drawRect(50,50,130,30); } } 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 9032 274874284294424982749794 Paso 3 Editor Compilador <HTML> <BODY> <APPLET CODE="MiPrimerApplet.class" WIDTH=300 HEIGHT=190> </APPLET> </BODY> </HTML> Paso 1 Paso 2 (archivo fuente) (archivo objeto) (archivo html) Paso 4 Edit, Notepad, etc. javac AppletViewer Programa en ejecución

Archivos HTML Se necesita un archivo HTML que haga referencia al archivo con el código objeto de applet para ejecutar el applet. <HTML> <BODY> <APPLET CODE="MiPrimerApplet.class" WIDTH=300 HEIGHT=190> </APPLET> </BODY> </HTML>

Preguntas rápidas 1. ¿Por qué son un visor de applet y un navegador web distintos? 2. ¿Qué clase es la clase principal de un applet? 3. ¿Qué método de la clase Graphics se usaría para dibujar un rectángulo? 4. ¿Cuál es el objetivo de la etiqueta APPLET en un archivo HTML?

Actividad Escriba un programa en Java que envíe los siguientes letreros a la pantalla y envie los mensajes que se indican a la ventana principal. Localiza la ventana principal inicialmente en la posición 150,150 y con dimensiones 100 x 100. Letrero Mensaje “Bienvenidos” Poner ventana en la posición 100,100 “Como estan?” Cambiar ancho a 400 “Yo soy...nombre” Cambiar alto a 300 “Eso es todo...” Poner ventana en la posición 200,400 “Fin...”

Código básico de la actividad /* Programa Actividad */ import javabook.*; class Actividad { public static void main(String args[]) { // se declaran dos objetos MainWindow ventanaPrincipal; MessageBox cuadroMensaje; // se crean dos objetos ventanaPrincipal = new MainWindow("Mostrar mensaje"); cuadroMensaje = new MessageBox(ventanaPrincipal); // se hacen visibles los dos objetos: ventanaPrincipal.show(); cuadroMensaje.show(“Bienvenidos"); //AQUÍ VA EL CÓDIGO PEDIDO... } }

Algunos métodos disponibles para dibujar gráficos Método Significado drawLine(x1 ,y1 ,x2,y2) Dibuja una línea entre (x1,y1) y (x2,y2) drawRect(x,y,w,h) Dibuja un rectángulo con anchura w y altura h en (x,y) drawRoundRect(x,y,w,h,aw,ah)Dibuja un rectángulo con esquinas redondeadas, anchura w y altura h en (x, y) Los parámetros aw y ah determinan el ángulo para redondear las esquinas draw0val(x,y,w,h) Dibuja un óvalo con anchura w y altura h en la posición (x, y) drawString("texto",x,y) Dibuja el string texto en (x,y)

Ejemplo gráfico Dibujo de un Triángulo import javabook.*; import java.awt.*; class Triangulo{ static public void main(String[] args){ MainWindow ventana = new MainWindow(); InputBox entrada = new InputBox(ventana); ventana.show(); //mostrar ventana antes de iniciar gráficos Graphics g = ventana.getGraphics(); g.setColor(Color.red); g.drawLine(100,100,400,100); g.drawLine(400,100,400,400); g.drawLine(400,400,100,100); } }

Una carita 100,100 400 import javabook.*; import java.awt.*; class Carita{ static public void main(String[] args){ MainWindow ventana = new MainWindow(); InputBox entrada = new InputBox(ventana); ventana.show(); //mostrar ventana antes de iniciar gráficos Graphics g = ventana.getGraphics(); g.setColor(Color.red); g.drawOval(100,100,400,400); g.drawOval(200,250,40,40); g.drawOval(350,250,40,40); g.drawArc(200,350,200,100,225,90); } } 200,250 40 350,250 40 40 40 400 200,350 200 225° 100 90°