Professional Documents
Culture Documents
Tutorial de JAVA 1. Recomendaciones En java la programacin se hace en archivos de extensin JAVA, estos pueden ser escritos con cualquier editor de texto que escriba en ASCII, pero con la aclaracin que el nombre del archiv, debe ser el mismo que de la clase principal. Comentarios Los comentarios son lneas en el cdigo fuente que no se compilan, pero ayudan mucho en la documentacin y/o el entendimiento del programa. a) Comentar una lnea simple Los caracteres para colocar estos comentarios, que solo comentan una lnea es como sigue: // <Texto de comentario> Ejemplo: // Este es un simple comentario b) Comentario de un bloque de lneas Para comentar un bloque de lneas se utilizan los siguientes tags: /* <Comentarios> <Comentarios> <Comentarios> */
2.
3.
Identificadores
Los identificadores son los nombres de las variables, estos nombres pueden estar constituidos por las letras alfanumricas, 4. Programa Hola mundo
El primer programa que se escribe es el de hola mundo, as que a continuacin ponemos el cdigo: package helloworld; //Definimos el nombre de nuestro proyecto, o para ser mas // exactos el nombre de nuestra librera o paquete; public class Main { // El nombre de nuestra clase que contendra nuestra funcion //principal public static void main(String[] args) {// declaracion de nuestra funcion principal System.out.println("Hola mundo."); //mensaje que desplegaremos por pantalla } } Este cdigo esta comentado para explicar sus partes, pero las ms importantes son: a) Las llaves ( {} ) son los smbolos para agrupar cdigo, estos delimitan el principio y el final de programas, clases, funciones y controladores de flujo. b) package: es el nombre de tu proyecto o como se conoce es tu librera de tu aplicacin, aqu se agrupan todas las clases de tu aplicacin o la creacin de tu librera. Este se encuentra formado de la siguiente manera: package <Nombre de tu proyecto/librera/paquete> En ejemplo tenemos, lo siguiente:
5.
Tipos de datos
Los tipos de Java se agrupan en cinco grupos, dentro de los cuales se tienen subtipos, los cuales son de diferentes tamaos para mejorar el rendimiento o precisin dentro del clculo de las operaciones. Cada subtipo tambin tiene un objeto que se encarga de agrupar los mtodos necesarios para la conversin y manipulacin del subtipo especfico. Los tipos de datos en JAVA son los siguientes: a) Enteros
Ejemplo para declarar variables tenemos: byte b= (byte)3; short c = (short)4; int e = 6; long g = 8L; Nota: Este tipo de declaraciones es necesaria, debido a que los literales que se ponen para especificar el valor de la variable, son tomadas automaticamente como enteros; en el caso de long solo se tiene que anadir una L (puede se en minuscula) al final de literal. b) Reales Dentro dos reales tenemos tres tipos: Alias float double Descripcin Reales con 7 dgitos de precisin Reales de 15-16 dgitos de precisin Bits 32 64 Rango de valores [1,510-45 - 3,41038] [5,010-324 - 1,710308] Tipo Objeto Float Double
El modo de hacer las declaraciones y asignaciones es de la siguiente manera: float a = 2.5f; // se utiliza una f al final de double b = 3.4; // cuando no se especifica ninguna letra al fina, por defecto el valor es double decimal c = 4.5m; // se utiliza una m al final de
c)
Lgicos
Los lgicos son los denominados boolean y solo tienen dos posibles valores: true o false, el objeto asociado a este tipo es el denominado Boolean. Un ejemplo de este tipo de declaracin es: boolean bandera = true; boolean flag = false;
d) Caracteres Este tipo de variable solo se encarga de almacenar caracteres, para ello los valores deben estar entre comillas simples (), si se coloca ms de un caracter generar un error. Se declara ay asigna de la siguiente manera: char car = 'A'; Pero dentro de esta gama de caracteres existen algunos caracteres que no se pueden usar como ser: \,,,.etc. para ello se tienen dos maneras: Una es el uso de la barra \, con ella adelante del caracter o letra representativa del mismo, podemos tener el caracter. Ej: o char caracter = '\\';//para solo hacer refenrencia al caracter de la barra \
Otra manera es utilizando el cdigo ASCII en hexadecimal del mismo carcter, para ello utilizamos la barra \ y la u (\u) y a continuacin 4 nmeros hexadecimales que representan, el objeto que hace referencia a este tipo es Character. Ej: char car = '\u0063'; Es lo mismo que: char car = 'c'; Los cdigos ASSCII y representaciones se encuentran en la siguiente tabla.
Carcter Comilla simple Comilla doble Carcter nulo Alarma Retroceso Salto de pgina Nueva lnea Retorno de carro Tabulacin horizontal Tabulacin vertical Barra invertida e) Cadenas
Cdigo de escape Unicode \u0027 \u0022 \u0000 \u0007 \u0008 \u000C \u000A \u000D \u0009 \u000B \u005C
Las cadenas son secuencias de caracteres, por lo que las recomendaciones para los caracteres se aplican para las cadenas, con la diferencia que se utilizan comillas dobles para delimitarlas (), las cadenas no tienen un objeto relacionado debido a que ellas ya se las manejan como objetos, un ejemplo de esto es. String cadena = "Hola Mundo"; o tambin String cadena = "Hola\tMundo"; Es por ello que el siguiente cdigo fuente: package helloworld; //Definimos el nombre de nuestro proyecto, o para ser mas // exactos el nombre de nuestra librera o paquete; public class Main { // El nombre de nuestra clase que contendra nuestra funcion //principal public static void main(String[] args) {// declaracion de nuestra funcion principal System.out.println( "Hola\tmundo." ); //mensaje que desplegaremos por pantalla } } El resultado es:
Tambin se pueden concatenar cadenas String cad; cad = "Hola " + "mundo"; // es lo mismo que -> "Hola mundo" Esto es aplicable a variables, cuando se concatena una cadena con una variables, el contenido de la variables es automticamente convertido a una cadena y es inmediatamente concatenado, Ej: int cad; cad = 5; System.out.println( "Hola " + cad); // es lo mismo que -> "Hola " +"5" Las cadenas son consideradas vectores de caracteres y posee una propiedad denominada Length que tiene el nmero de String cad = "Hola mundo"; System.out.println(cad.Length);//El tamao de la cadena es 10
6.
Operadores Dentro de los operadores que se manejan en JAVA a. Operadores aritmticos +: Suma aritmtica -: Resta aritmtica / : Divisin aritmtica %: Modulo de un aritmtica b. Operadores lgicos && - &: Este es el Y lgico || - |: Este es el o lgico ! : Este es la negacin lgica ^: Este es el Xor lgico Operadores relacionados ==: Igualdad !=: Desigualdad >: Mayor que <: Menor que >=: Mayor o igual que <=: Menor o igual que d. Operadores de manipulacin de bits &: and |: or c.
-- : realiza el decremento unitario. EJ: a--; --a; += : realiza el incremento automtico de un determinado variable. Ej: a += 5 es lo mismo que a = a + 5 -= : realiza el incremento automtico de un determinado variable. Ej: a -= 5 es lo mismo que a = a - 5 *= : realiza el incremento automtico de un determinado variable. Ej: a *= 5 es lo mismo que a = a * 5 /= : realiza el incremento automtico de un determinado variable. Ej: a /= 5 es lo mismo que a = a / 5 %= : realiza el incremento automtico de un determinado variable. Ej: a %= 5 es lo mismo que a = a % 5 7. Las entradas y Salidas
Las salidas en JAVA se usa el objeto out que se encuentra dentro del objeto System. Este objeto tiene los siguientes mtodos: System.out.println( <cadena o variable> ) Imprime una cadena o el contenido de una variable y lo termina con un salto de linea. Imprime una cadena o el contenido de una variable y lo termina sin un salto de linea.
System.out.print(cadena o variable> )
Un ejemplo de esto tenemos System.out.println("Hola mundo"); Es lo mismo que decir System.out.print("Hola mundo\r\n");
8.
Controladores de flujo
Los controladores de flujo es la base los programas, entre ellos tenemos los siguientes.
Controlador de flujo de dos caminos: if ( <condicin> ) { <tu cdigo aqu> }else{ <tu cdigo para el caso contrario> } b. if (resumido) Este es un if resumido para la asignacin directa de valores = ( <condicin> )? <calor para else si> : <valor para el caso contrario>; Los resultados deben ser del mismo tipo que el de la asignacin. Ej: int a = 3; int b = (a > 0) ? a : 0; //tomar en cuenta que en ambos casos son enteros por que la asignacin se la hace a un entero Esto es lo mismo que decir: int a = 3; int b; if (a > 0) { b = a; }else{ b = 0; } c. while
El ciclo mientras se caracteriza por repetir un conjunto de instrucciones mientras se cumpla una determinada condicin, esto puede hacerlo de 0 a N veces, su sintaxis: while ( <condicin> ) { <tu cdigo> }
Un ejemplo de esto es: int c = 0; while (c < 10) { System.out.println(c); c++; } El resultado es:
d. for El ciclo mientras se caracteriza por repetir un conjunto de instrucciones mientras se cumpla una determinada condicin, esto puede hacerlo de 0 a N veces, su sintaxis: for ( <inicializacin> ; <condicin>; <incremento> ) { <tu cdigo>} Un ejemplo de esto es: for (int c = 0; c < 10; c++ ) { System.out.println(c); } e. dowhile El ciclo mientras se caracteriza por repetir un conjunto de instrucciones mientras se cumpla una determinada condicin, esto puede hacerlo de 0 a N veces, su sintaxis:
do{ <tu cdigo> } while ( <condicin> ) Un ejemplo de esto es: int c = 0; do{ System.out.println(c); c++; } while (c < 10); 9. Vectores Los vectores pueden ser tomados en cuenta como una secuencia de variables del mismo tipo, para ello se usa las [] para especificar que son corchetes, para esto usan la siguiente sintaxis: <tipo_variable> [] <identificador_de_variable>; Un ejemplo para la declaracin es como sigue:
10. Foreach El ciclo foreach es una manera ms adecuada para acceder a cada elemento de una coleccin, como ser los vectores, la estructura del foreach es como sigue: for ( <tipo> <variable> : <coleccin> ) { <tu cdigo fuente> } Un ejemplo de esto es: int[] vector = {1,2,3,4,5,6,7,8,9,0 }; for ( int b : vector) { System.out.println( b ); } 11. Clases Las clases son las especificaciones de objetos, las declaramos usando la palabra reservada class, para ello se usa la siguiente sintaxis class <Nombre_clase>
Las clases estn conformadas por mtodos y propiedades. a. Las propiedades son variables que nosotros definimos y son comunes entre los objetos, pero llegan a ser nicas en su valor, cumpliendo con el encapsulamiento, para esto tenemos el siguiente ejemplo de persona. class Persona // El nombre de tu clase principal { String nombre; // propiedad de la clase int edad; long ci; } Tambin pueden inicializarse a este punto con un valor especfico.
b.
Los mtodos son quienes definen el comportamiento de un objeto, ejecutando un conjunto de instrucciones como si fueran programas independientes , en los cuales podemos clasificar de dos tipos, las funciones , que siempre devuelven un valor, y los procedimientos que no devuelven un valor, en JAVA todos son funciones, las funciones se definen de la siguiente manera: <nivel acceso> <tipo_de_retorno> <nombre de la funcin> ( <lista de parmetros> ) { return <valor_del_tipo_de_retorno>); } Cuando la instruccin de return se ejecuta, la ejecucin de la funcin termina inmediatamente, devolviendo el valor que se le especifique. Un ejemplo de esto es crear una funcin que despliegue por pantalla los datos de una persona. public void imprimir() { System.out.println("Nombre: "+nombre); System.out.println("Edad: " + edad); System.out.println("CI: " + ci); return void; } En este ejemplo se puede destacar algunos puntos: Una que la funcin tiene parntesis en vacio, eso significa que la lista de parmetros es vaca, por lo que no recibe ninguna variable. La segunda es void, el cual es un tipo especial de dato, pero por el momento solo se mar en cuenta que se utiliza cuando la funcin no devuelve ningn valor, lo cual especificamos con el return, aunque esta funcin retorna void se puede simplemente colocar return; , directamente se puede obviar esta lnea y el compilador lo interpretar automticamente como un return void;. Las propiedades de la clase pueden ser accedidas por los mtodos de la clase.
Creamos una funcin que sume un determinado nmero a la edad. public void incrementar(int n) { edad = edad + n;
La sobrecarga es una manera de agrupar metodos que son similares pero que solo se diferencian en los tipos de parametros y/o en el nmero de ellos, un ejemplo de esto es sumar dos nmeros pueden existir 3 funcionesuna para int, otra para float y otra para double, como tambien otra para sumar 3 enteros. De la siguiente manera: public int sumar(int a, int b) { return ( a + b ); } public float sumar(float a, int b) { return ( a + b ); } public double sumar(double a,double b) { return ( a + b ); } public int sumar(int a, int b, int c) { return ( a + b + c); } La llamada a estas funciones es como sigue a continuacin: int a = suma( 2 , 3 ); float b = suma( 2.0f , 3.0f ); double c = suma ( 5.0 , 6.0 ); int d = suma( 2 , 3, 4 ); JAVA automticamente detecta cual es la funcin que tiene que ser ejecutada por los parmetros que son pasados a ellas.
12. Constructores Los constructores son mtodos especiales que poseen los objetos, tienen la finalidad de inicializar las propiedades de los atributos o definir comportamiento ( 0 estado inicial) del objeto. Los constructores deben tener el mismo nombre de la clase y se declaran de la siguiente manera: <Tipo de acceso> <nombre de la clase> ( <lista de parmetros> ) { <tu cdigo aqu> } Un ejemplo de esto es el expuesto a continuacin: public Persona() {
16. Herencia La Herencia es una propiedad de Programacin Orientada a Objetos (POO), esto permite reutilizar el cdigo y solo concentrarnos en los mtodos que cambian el comportamiento de una clase. Existe una clase que se le denomina clase padre y una clase que hereda todas las propiedades y mtodos de esta clase que se denomina clase hija, los hijos solo se concentran en aadir mas mtodos y/o propiedades, para heredar se utiliza la palabra reservada extends, utilizando la siguiente sintaxis: class <Nombre de la clase hija> extends <Nombre de la clase padre> { <mtodos y/o propiedades de la clas padre> } Un ejemplo es: class Persona // El nombre de tu clase principal { String nombre = "Juan Perez"; int edad = 55; long ci = 4533678; void imprimir() { System.out.println("Nombre: "+nombre); System.out.println("Edad: " + edad); System.out.println("CI: " + ci); } } Public class Militar // El nombre de tu clase principal { String cargo = "cadete"; // nueva propiedad void imprimirCargo() // nuevo mtodo aadida { this.imprimir(); // metodo heredado System.out.println("Cargo: " + this.cargo); } } 17. Sobre-escritura
19. Polimorfismo El polimorfismo es un mtodo que nos ayuda a utilizar diferentes objetos que son hijos de una misma clase y utilizarlos como si fuese la misma clase, esto se puede apreciar con un ejemplo . class Persona { public void yosoy()
for ( int i = 0; i < vector.length; i++) { vector [i] .yosoy(); } } 20. Concepto del Cast As como el polimorfismo generaliza diferentes objetos para obtener manejarlos indistintamente, el cast hace el paso inverso, de un conjunto de objetos que se usan en forma generalizada, lo que se debe hacer es identificar el tipo de cada objeto y lo asigna a una variable menos generalizada o exactamente el tipo de variable que es dicho objeto, el formato que sigue es: <tipo especfica> <nombre de la variable> = ( <tipo especfico> ) <variable objeto> ; Aplicndolo al ejemplo del polimorfismo es: Persona A; Persona B; Persona C; Militar X; Piloto Y; Marinero Z; A = new Militar(); B = new Piloto(); C = new Marinero(); X = ( Militar ) A; Y = ( Piloto ) B; Z = ( Marinero ) D; 21. Clases abstractas Las clases abstractas son clases que no pueden ser instanciadas, es utilizando la palabra clave abstract en la declaracin de la clase, como se muestra a continuacin: abstract class Persona // El nombre de tu clase principal { } Desde luego al hacer esto, las clases abstractas no tienen constructores y por lo menos uno de sus mtodos deben ser abstractos, esto significa que solo son declarados sin la implementacin del algoritmo, como se muestra a continuacin: abstract class Persona // El nombre de tu clase principal { public abstract void yosoy(); // funcin abstracta }
Java AWT La librera AWT es una librera de entorno grfico, con elementos bsicos para la creacin de GUI. la importacin de los componentes del GUI es: import java.awt.*; 1. Ventanas Las ventanas son importantes para un ambiente grfico, es nuestro lugar de trabajo e interfaz para interactuar con el usuario. hay muchas maneras de crear una ventana, pero aqu utilizaremos una de las ms comunes, la herencia, creamos una clase y heredamos todas las caractersticas de Frame. public class MiVentana extends Frame{ public MiVentana() { } } Las ventanas tienen muchas propiedades entre las cuales podemos destacar las ms utilizadas: Este es el constructor de la clase frame, en el constructor de la ventana solo tienes que hacer referencia al constructor del super y pasarle el mismo parametro. La cadena que se le pasa al constructor es el ttulo que va a tener la ventana. Especifica el alto y el ancho que tendr la ventana, por defecto tiene de tamao 0,0; por lo que es recomendable siempre darle un tamao a la ventana. Esta funcin coloca la ventana en un coordenada Y y X en la pantalla. Esta funcin se encarga de visualizar la ventana.
Esta funcin es til para aadir componentes grficos, el uso de add( Componet comp) esta funcin la veremos a partir de paneles. Es el manejador de distribucin de componentes, recibe una manejador de layouts, se recomienda para principiantes que este se debe pasar el valor de null.
setLayout(Layout layout)
Un ejemplo para la creacin de una ventana es el cdigo presentado a continuacin: import java.awt.*;//cargamos los componentes de la librera AWT.
2.
Dialogo Los dilogos son sub-ventanas que pueden o no depender de una ventana, la ventaja esta en esta dependencia, porque se puede especificar el funcionamiento de una aplicacin haciendo que el usuario interactu con un dialogo antes que con la ventana principal, otra ventaja es que en esta dependencia si la ventana se cierra, todos los dilogos que dependen de ella pueden ser cerrados. La manera como se instancia un dilogo es similar que las ventanas. public class MiDialogo extends Dialog{ public MiDialogo() {
Especifica el alto y el ancho que tendr la ventana, por defecto tiene setSize(int width, int heigth) de tamao 0,0; por lo que es recomendable siempre darle un tamao a la ventana. setLocation(int x, int y) setVisible(boolean b) Esta funcin coloca la ventana en un coordenada Y y X en la pantalla. Esta funcin se encarga de visualizar la ventana. Esta funcin es til para aadir componentes grficos, el uso de esta funcin la veremos a partir de paneles. Es el manejador de distribucin de componentes, recibe un manejador de layouts, se recomienda para principiantes que este se debe pasar el valor de null.
setLayout(Layout layout)
Un ejemplo para la creacin de una ventana es el cdigo presentado a continuacin: import java.awt.*;//cargamos los componentes de la librera AWT. public class MiDialogo extends Dialog{ //Heredamos todas las propiedades de la ventana public MiDialogo( Frame ventana ) { super( ventana, "MiDialogo" ); //Llamada al constructor padre setLayout(null); setSize(200,200); //Colocamos un tamao al dialogo actual setLocation(150,150); //Especificamos la posicin en la pantalla } }
3.
Componentes en General Los componentes son objetos grficos que nosotros utilizamos en JAVA para interactuar con el usuario, estos componentes a las ventanas, dilogos y paneles, todos los componentes heredan las mismas propiedades del objeto Component, entre estas propiedades podemos destacarlos mtodos ms usuales. Nombre de la funcin void setText( String text) String getText( ) void setSize(int width, int heigth) Descripcin Esta funcin se encarga de asignar el texto que se mostrar en el componente. Esta funcin se encarga de retornar el texto que se encuentra en el componente. Especifica el alto y el ancho que tendr la ventana, por defecto tiene de tamao 0,0; por lo que es recomendable
El uso de estas funciones vamos apreciarlas a lo largo de este tutorial y apreciaremos que todos los componentes tienen estas funciones. 4. Titulos o Labels Los Labels, es el texto que nosotros podemos presentar en java pero no puede ser editado, tal como si fuese un titulo.
import java.awt.*; // librera grafica public class MiVentana extends Frame{ Label titulo; // declaramos una variable de tipo Label. public MiVentana() { super("MiVentana"); setLayout(null); setSize(200,100); setLocation(50,50); titulo = new Label(); // Instanceamos un objeto de tipo label llamando al constructor por defecto. titulo.setText ( "Mi titulo" );// Colocamos un titulo o texto que ser visualizado. titulo.setSize ( 200,25 );// Especificamos el tamao que tendras nuestro ttulo. titulo.setLocation ( 20,50 );// Especificamos la posicin de nuestro ttulo. add ( titulo );// ahora aadimos nuestro ttulo a nuestra ventana, si no hacemos esto, nuestro ttulo no aparecer en la ventana. } } El resultado de la ejecucin de este cdigo es la imagen que est a continuacin:
5. Cajas de texto Las cajas de texto son los llamados TextField, son campos de texto editable que ayudan a que el usuario ingrese valores a un programa, para obtener import java.awt.*; // librera grafica public class MiVentana extends Frame{ TextField msg; // declaramos una variable de tipo Label. public MiVentana() { super("MiVentana");
6.
Botones
Los botones son otros objetos visuales que son tiles para iniciar funcionalidades especficas del programa, en JAVA utilizan el nombre de Buttons. Los botones no tienen una funcin de setText() para especificar el texto que se visualizar en el botn, para ello se utiliza la funcin setLabel(), que se utiliza de la misma manera. Nombre de la funcin void setLabel ( String label ) Descripcin Recibe el texto que se visualizar en el botn.
Un ejemplo del uso de los botones es el que ponemos a continuacin: public class MiVentana extends Frame { Button miBoton; public MiVentana() { super("MiVentana"); setLayout(null); setSize(200,100); setLocation(50,50);
miBoton = new Button(); // instanceamos un botn miBoton.setLabel ( "Mi Boton" ); // le colocamos un texto miBoton.setLocation (25,45 ); // especificamos una posicin miBoton.setSize ( 150, 25 ) ; // especificamos el tamao del botn this.add( miBoton ); //aadimos el botn a nuestra ventana } }
Ahora si queremos hacer algo al presionar el botn, veremos que no sucede nada, y ms todava si nosotros queremos cerrar la ventana al ejecutar todos estos ejemplos, tendremos la frustracin que no se cierra, para ello veamos el siguiente apartado. 7. Listeners
Existe otro paradigma de programacin, la cual es el paradigma orientado a eventos, esto es que cada vez que sucede un evento se puede suceder algo, un evento son acciones que suceden como ser, el movimiento del mouse, el cierre de una ventana, la presin de un botn, el escribir por el teclado. Los encargados de escuchar a estos eventos son denominados Listeners.
Los listeners son interfaces, en otras palabras que son comportamientos que se aplican a las clases para que tengan un comportamiento y puedan ser usados por el sistema, existen una variedad de listeners. Entre ellos tenemos. a. ActionListener Esta interfaz es usada para escuchar los eventos al presionar el mouse sobre un componente, como por ejemplo los botones, el ActionListener se encuentra en el siguiente paquete: import java.awt.event.*; Esta interfaz tienen una funcin que debe ser sobre-escrita, esta funcin es: public void actionPerformed (ActionEvent ae) { } Cada vez que se hace click sobre un componente JAVA, hace referencia a esta funcin. Esta funcin recibe como parmetro un objeto ActionEvent que contiene toda la informacin del evento del mouse. Utilizando el mtodo getSource().equals() para comparar el objeto seleccionado con nuestro botn.
Los botones y otros objetos similares tienen un mtodo para especificar el objeto que implementa el ActionListener, este es el addAtionListener(), as enlazamos el objeto que se encarga de escuchar el evento con el botn, para apreciar eso tomaremos el ejemplo de la seccin 6, donde cada vez que presionemos el botn se desplegara un mensaje en pantalla: import java.awt.*; import java.awt.event.*; //implementamos la interfaz del ActionListener en la venta para, que esta sea quien escuche los eventos. public class MiVentana extends Frame implements ActionListener { Button miBoton = null; public MiVentana() {
b. WindowsListener Esta interfaz se encarga de escuchar los eventos que ocurren sobre la ventana, como ser mimizarla, restaurarla, cerrarla, etc. Esta interfaz se encuentra en el siguiente paquete: import java.awt.event.*; Las funciones que se tienen que sobre-escribir de esta interfaz, son las listadas a continuacin Nombre void windowActivated( WindowEvent e ) void windowClosed( WindowEvent e ) void windowClosing( WindowEvent e ) void windowDeactivated( WindowEvent e ) void windowDeiconified( WindowEvent e ) void windowIconified( WindowEvent e ) void windowOpened( WindowEvent e ) Descripcin Cuando se selecciona la ventana. Cuando la venta se ha cerrado sin intervencin de los botones estndares. Cuando se encarga presiona el botn de cerrado de la ventana. Esta funcin entra cuando la ventana entra en estado inactivo. Esta funcin es llamada cuando la ventana es restaurada. Esta funcin es llamada cuando la ventana es minimizada. Esta funcin es llamada cuando la ventana es visualizada.
El objeto WindowEvent contiene toda la informacin sobre el evento que se ha capturado. La funcin que se encarga de especificar el objeto que escuchar estos eventos es: addWindowListener( ); Un ejemplo de este cdigo es el programa presentado a continuacin: import java.awt.*; import java.awt.event.*; public class MiVentana extends Frame implements WindowListener
8.
Mi primer programa
Para estas alturas se puede hacer un programa ms avanzado que el hola mundo, como ser el que el usuario ingrese un texto en la caja de texto y este se despliegue en otro lugar de la ventana como en la barra de la ventana.
import java.awt.*; import java.awt.event.*; public class MiVentana extends Frame implements WindowListener,ActionListener { private Button miBoton = null; private Label miTitulo = null; private Label miResultado = null; private TextField miCaja = null; public MiVentana() //constructor por defecto { super("MiVentana"); // llamamos al constructor de la clase padre setLayout(null); // especificamos el manejador de layouts con inexistente setSize(250,130);//especificamos un tamao de la ventana setLocation(50,50);// especificamos una posicin miTitulo = new Label("Ingrese un texto:"); miTitulo.setLocation(10, 25); miTitulo.setSize(200,25); this.add(miTitulo); miCaja = new TextField("Hola mundo...."); miCaja.setLocation(10, 50); miCaja.setSize(200,25); this.add(miCaja); miBoton = new Button("Imprimir el texto"); miBoton.setLocation(10, 75); miBoton.setSize(200,25); miBoton.addActionListener(this); // especificamos que la ventana est escuchando this.add(miBoton); miResultado = new Label("Msj: "); miResultado.setLocation(10, 100); miResultado.setSize(200,25); this.add(miResultado); this.addWindowListener(this);// espoecificamops wl objeto que se encargar de escuchar los eventos de la ventana } public void actionPerformed(ActionEvent ae) {// Esta funcion es llamada cuando se presiona el boton if( ae.getSource().equals( miBoton ) ) { // obtenemos el texto de la caja de texto y lo visualizamos en el label miResultado.setText( "Msj: " + miCaja.getText() ); //Colocamos el texto en el ttulo de la ventana this.setTitle("Mi Ventana-"+ miCaja.getText()); } }