JAVA J.A.C.
Tipos básicos de Java No son objetos byte. 8 bits - complemento a 2 shot. 16 bits - complemento a 2 int 32 bits - complemento a 2 long 64 bits - complemento a 2 float 32 bits - IEEE 754 double 64 bits - IEEE 754 char 16 bits - Unicode. Boolean true-false ______________________________________________________________ No son objetos
CLASES ENVOLVENTES Cada una de las variables primitivas tiene su correspondiente clase envolvente (wrapper class) cuyos objetos pueden almacenar un valor numérico del tipo de la variable primitiva. Las clases envolventes se utilizan para conversión de tipos de datos e igualmente en las colecciones de objetos de tipo Vector, Stack y Hastable. byte short int long float double char boolean Integer Long Float Double Character Boolean
CLASES ENVOLVENTES Integer int int valueOf( ) <Tipo primitivo de datos> <Tipo primitivo de datos> valueOf( )
CLASES ENVOLVENTES String Integer Objeto Objeto int String Integer int entero = Integer. ParseInt ( Cadena)
Cadenas - String Los String provienen de la clase String de Java.lang. Igual que con cualquier objeto, se reserva el espacio en memoria, y luego se instancia: String a,b; // reserva espacio para una cadena a = new String(“uno”); // Se instancia a con “uno” b = String.valueOf(5); // Convierte el objeto en String Tambien se puede instanciar; String C = “Buenos dias”; ______________________________________________________________
Métodos de la Clase String String z = “Buenos dias”; int a = z . lenght( ) ; // Determina longitud de z String w = z . replace (‘u’,’x’ ) ; // remplazar String c = z . UpperCase ( ) ; // Convierte a mayuscula String d = z . LowerCase ( ) ; // Convierte a minuscula String e = z . Trim ( ) ; // Elimina los blancos int f = 2; String g = f . toString ( ) ; // Convierte a cadena c = f . Compare (z) ; // 0 => iguales f = z . indexOf (int(‘a’),1) ; // indice de la primera a ______________________________________________________________
Clase Math Math.abs (x ) Math. ceil (x) Math. cos (x) Math. exp (x) Math. floor (x ) Math. log (x) Math. max (x,y ) Math. min (x,y) Math. pow (x,y) Math. sin (x) Math. sqrt (x) Math. tan (x) ______________________________________________________________
Operadores más importantes + Suma - Resta * Multiplicación. / División. % Residuo ? Selección - (total= =25)?12:14; ! Inversión booleana. a! <= Menor o igual => Mayor o igual != Diferencia ?= = igualdad && AND | | OR & AND bit a bit ^ OR EXCLUSIVO bit a bit | OR INCLUSIVO bit a bit ______________________________________________________________
Operadores de Incremento y decremento + = a + = 1 a = a + 1; - = b - = 2 b = b - 2; * = c + = 3 c = c + 3; / = d / = 4 d = d / 4; % = e % = 5 e = e % 5; Operaciones pre y pos ______________________________________________________________ ++ a . Incrementa a en 1 y luego usa el nuevo valor de a en la expresion en la que a reside. a ++ . Usa el nuevo valor de a en la expresion en la que a reside, y luego incrementa a en 1.
Los arreglos son siempre dinámicos int dias [ ] = {3,5,9,11,15,25} char letras [ ] = {“A”,”B”,”C”} String Nombres = new String [12]; int C[ ] = new int[12]; ______________________________________________________________ C[0] C[11] UN ARREGLO DE LETRAS NO ES LO MISMO QUE UNA CADENA DE CARACTERES
Como utilizar el new Import java.util.Date; class creardatos { public static void main (String args [ ]) { Date a1,a2,a3; a1 = new Date( ); System.out.println(“Date 1: “ + a1); a2 = new Date(71,7,1,7,30 ); System.out.println(“Date 2: “ + a2); a3 = new Date(“April 3 1993 3:24 PM” ); System.out.println(“Date 3: “ + a3); } ______________________________________________________________
Cláusula IF If ( variable = 0n) System.out.println (“Aprobado”); Verdadero Variable = On Imprimir “aprobado” ______________________________________________________________
Cláusula if - else If ( variable > 10) System.out.println (“Aprobado”) else System.out.println (“Reprobado”); Verdadero Imprimir “aprobado” Variable > 10 ______________________________________________________________ Falso Imprimir “Reprobado”
Cláusula while int producto =2; while ( producto <= 100) producto = 2 * producto; producto =2 ______________________________________________________________ producto <= 100 producto = 2 * producto Verdadero Falso
Estructura case - break default Switch (clave) { case 10: a=5; break; case 7: a=7; case 11 a=8; } ______________________________________________________________
System.out.println(“En el lazo”); Estructura For for (x=1 ; x<=20;x++) {System.out.println(“En el lazo”);} x=1 x++ ______________________________________________________________ x<=20 System.out.println(“En el lazo”);
Llamada al Applet desde HTML <HEAD> Ejemplo2 - Nuestro primer applet de java </HEAD> <BODY> <APPLET CODE=“PROG1.class” WIDTH=130 HEIGHT=150> <PARAM NAME=“Texto” VALUE=“Nuestro primer Applet”> <PARAM NAME=“fnt” VALUE=“Courier”> <PARAM NAME=“valx” VALUE=“10”> <PARAM NAME=“valy” VALUE=“60”> </applet> </BODY> </HTML> ______________________________________________________________ PARAMETROS PASADOS AL APPLET
Programa Prog1 - Applet - Java Import java.awt.*; Import java.applet.*; public class Prog1 extends Applet { String texto, fnt; int valx, valy; public final void init() { texto = getParameter (“texto”); fnt = getParameter (“fnt”); valx = Integer.valueOf(getParameter (valx)).intValue( ); valy = Integer.valueOf(getParameter (valy)).intValue( ); } ______________________________________________________________ El metodo paint en la siguiente pagina
Metodo paint de la Clase Prog1 Public final void paint (Graphics g) { g.setFront (new Front (fnt, Font:PAIN, 24); g.setColor (Color.white); g.fillRect (0 , 0, size( ).width, size( ).height); g.setColor (Color.red); g.drawString (texto, valx, valy); } ______________________________________________________________
Aplicaciones en Java Applet. Es una aplicación de Java que corre sobre un panel ubicado en una pagina HTML. Aplicaciones. Las aplicaciones pueden ser: - Ventana. Corre sobre un objeto Frame. - Consola. Cuando la aplicación utiliza como salida la consola de un terminal o modo DOS. ______________________________________________________________
Aplicaciones sobre consola Se inician con un metodo main Utilizan para E/S las clases de Java.io.* System.out.println(“ - cadena - “); System.out.flush ( ); // limpia el buffer de salida xx = System.in.read(); // lee un caracter System.in.skip(1); // salta el carácter de nueva línea System.exit(int) //termina la ejecución de la MV java System.gc (); // llama al recolector de basura. ______________________________________________________________
INTERFACES DE COLLECTION
COLLECTION COLLECTION Las colecciones son solo de objetos. boolean add(Object obj) // Inserta objeto en colección boolean addAll (Collection colección) // Inserta colección void clear( ) // borra los elementos de la colección. boolean equals (Object objeto) // compara objetos. Iterador iterador( ) // regresa iterador boolean remove (Object objeto) // elimina objeto boolean removeAll (Collection colección) // Elimina colección int size( ) // devuelve el numero de elementos de la colección. boolean retainAll(Collection colección) // Elimina todos los objetos excepto los de colección. int hashCode ( ) // devuelve el código de dispersión de la colección invocante.
COLLECTION COLLECTION Object [] toArray( ) // Devuelve la matriz que contiene todos los elementos almacenados en la colección invocante. Object [] toArray (Object matriz[]) // Devuelve una matriz que contiene solo los elementos de la colección cuyo tipo coincide con el de matriz. Excepciones: UnsupportedOperationException. Operación no soportada ClassCastException. Cuando se intenta añadir a la colección un objeto incompatible.
INTERFACE LIST COLLECTION extends LIST void add(indice, Object objeto) // inserta un objeto en la posición indicada. boolean addAll (int índice, Collection colección) // insertar todos los elementos de colección en la lista object get(int índice) // Devuelve el objeto almacenado en índice int IndexOf(Object objeto) // Devuelve el índice de la primera instancia que se consiga. –1 si no consigue. ListIterator listIterator( ) // Devuelve iterador al principio. ListIterator listIterator(int indice ) // Devuelve iterador en índice Object remove(int indice) // remueve un objeto de la lista. Object set (int indice, Object objeto) // Inserta un objeto List subList (int inicio, int fin) // Extrae una sublista.
ArrayList ArrayList AbstractList Interfaces Clase Abstracta COLLECTION extends LIST ArrayList Constructores: ArrayList() ArrayListCollection(colección) ArrayList (int capacidad)
ArrayList - métodos Class ejemploArrayList { public static void main (String Arg [] ) { ArrayList a1 = new ArrayList( ); a1.add(Integer(1)); a1.add(Integer(2)); a1.add(Integer(3)); a1.add(Integer(4)); }
Java.util – Clase Vector La clase Vector permite crear arreglos especiales de objetos que pueden crecer a medida de las necesidades de la aplicación. Objetos de la misma clase Vector Elemento 1 Elemento 2 ...... ....... Elemento n
MÉTODOS DE LA CLASE VECTOR Insertar un nuevo elemento: <Objeto vector>. addElement ( <referencia al objeto>); Largo del vector: <Objeto vector>. Size( ); Eliminar un elemento: <Objeto vector>. removeElement ( <referencia al objeto>); Obtener referencia del elemento i: <Objeto vector>. elementAt (i);
Clase LinkedList Constructores: LinkedList( ) LiskedListCollection( ) extends AbstractList Clase Abstracta Interfaces ArrayList Constructores: LinkedList( ) LiskedListCollection( ) void addFirst(Object objeto) void addLast (Object objeto) Object getFirst ( ) Object getLast ( ) Object removeFirst( ) Object removeLast( )
Interface Set Interfaces COLLECTION La interface Set define una colección que no permite elementos duplicados. extends SET
Clase HashSet Crea una colección que usa una tabla de dispersión para el almacenamiento. Constructores: HashSet ( ) HashSet(Collection colección) HashSet(int capacidad) HashSet(int capacidad, float razónLlenado)
Clase TreeSet TreeSet proporciona una implementación de la interface Set. Los objetos se almacenan ordenados, en orden ascendente. Los tiempos de acceso y recuperación son bastantes rápidos, lo que hace de una TreeSet una excelente selección cuando se almacenan grandes cantidades información ordenada que debe encontrarse rápidamente
CLASE STACK METODOS: <Objeto>.empty. Informa si la pila esta vacía. <Objeto>.size(). Cantidad de elementos de la pila. <Objeto>.push( <elemento>). Inserta un elemento en la pila. <Objeto>.pop( ). Saca un elemento de la pila. Genera una excepcion si la pila esta vacia EmptyStackException <Objeto>.peek(). Lee el elemento tope de la pila. No lo saca de la pila. Si no existe el elemento genera la excepcion EmptyStackException <Objeto>.search( <elemento>). Regresa la posicion del item. Regresa –1 si no se encontró en la pila el item. NOTA: Extiende la clase Vector.
HASHTABLE Permite crear listas de datos con índices de acceso, creando códigos de direccionamiento para cada dato. MÉTODOS: <Objeto>.put (Objeto clave , Objeto elemento); Inserta elemento. <Objeto>.get (Objeto clave); Regresa el objeto elemento. <Objeto>.remove (Objeto clave); Elimina elemento. <Objeto>.keys ( ). Regresa una Enumeration de las claves para poder verlas en secuencia.
CLASE TREE MAP Permite crear listas ordenadas, sin repeticiones, mediante pares de claves y valores. MÉTODOS: <objeto>.put (clave, valor); Insertar un elemento. <objeto>.get (clave, valor); Tomar un elemento.
CLASE COLLECTION Collection <colección> = <objeto Tree map>.entrySet( ); Iteractor i = <colección>. Iterator( ); While (i.hasnext( ))
AWT - Abstract Window toolkit VISTA PARCIAL Clase java.lang ______________________________________________________________ Clase AWT Aplicaciones Applet Windows
Componentes de AWT Ventana Barra de menu NOTA: Archivos Opciones Ayuda Ventana Barra de menu NOTA: Este es un texto de prueba Etiqueta Panel ______________________________________________________________ Lienzo Etiqueta Campo de texto
Applet El Applet se genera como una extensión de la clase Applet del paquete AWT. El Applet se construye sobre un contenedor del tipo panel. El Applet se arranca desde la pagina WEB. El Applet requiere de un método predefinido llamado paint los Applets se construyen en base a metodos predefinidos: init(), start(), paint(), stop() ______________________________________________________________
Applet - Ciclo de vida. La pagina WEB es activada. Cuando se lee la etiqueta <Applet> - Se dispara el proceso init(). El applet se carga por completo y esta listo para ejecutarse.- Se dispara el proceso start(). El usuario abandona la pagina WEB, pero sigue ejecutando el visualizador. Stop(). El usuario abandona el visualizador. - destroy() ______________________________________________________________
ActionListener CASO: habilitar el detector de acción para el boton. Es necesario implementar la clase ActionListener. Debe crearse un botón Ejecutar el método boton.addAcctionListener(this); Implementar el metodo public actionPerformed. boton. addActionListener(this) public void actionPerformed (ActionEvent event) { if (event.getSource() == boton) {texto.setText(“que pasa”);} } ______________________________________________________________
Aplicaciones Windows Al igual que las aplicaciones del tipo consola, las aplicaciones Window comienzan con un método tipo main. Las aplicaciones se construyen de un subclase de Frame, el cual es un contenedor independiente. Se utiliza el método paint para dibujar y mostrar caracteres. ______________________________________________________________
Método Paint g.drawString ( cadena , pos x, pos y); g. drawLine - dibujar línea g. drawOval - dibujar Ovalo g. drawPoloygon - Dibujar polígono g. drawRect - Dibujar rectángulo g. drawRoundRect - Dibujar rectángulo de esquinas redondeadas g. draw3DRect - Dibujar rectángulo en 3D g. FillArc - Llenar arco ______________________________________________________________
Método Paint fillOval - Llenar ovalo. fillPolygon - Llenar poligono. fillRect - Llenar recta fillRoundRect - Llenar rectangulo con bordes redondeados. fill3DRect - Llenar rectangulo en tercera dimensión. ______________________________________________________________
Fuentes de Caracteres Front micaracter = newFront (“Dialog”, Font.BOLD,14); g.setFront (micaracter); Nombre de la Fuente Tamaño Estilo del carácter Fuente Java Equivalente Windows Courier Courier new Dialog MS Sans Serif DialogInput MS Sans Serif Helvetica Arial TimesRoman Times New Roman ZapfDingbars Wingding Estilo de caracteres Font.PAIN Font.BOLD Font.ITALIC Font.BOLD+Font.ITALIC ______________________________________________________________
Clase Font Metric Font fnt = new Font (“Dialog”,Font.BOLD,24); String texto = “Buenos dias”; FontMetrics fm; fm = getFontMetrics (fnt ); int altura = fm.getHeight( ); int ancho = fm.StringWidth(texto); ______________________________________________________________
Colores Color azul = newColor(0,0,255); g. setColor(azul); 255, 0, 0 rojo 0, 255, 0 verde 0, 0, 255 azul 0, 0, 0 negro 255, 255, 255 blanco ______________________________________________________________
paint ( ); } import java.awt.*; import java.io.*; import java.applet.*; public class ejemplo3 extends applet { static int n; static contador laCuenta ; public ejemplo3 ( ) { laCuenta = new contador( ); } public static void main (String Args [ ]) { laCuenta = new contador( ); paint ( ); } public void paint (graphics g) { g.drawline (“El Contador”,20,20); g.drawline (String.valueOf(laCuenta.getContador()),20,35); n= laCuenta.incContador(); g.drawline (String.valueOf(n),20,65); } Public static void paint () { system.out.println (“El Contador”); laCuenta = new contador(); system.out.println (laCuenta.getContador()); system.out.println (n); } } ______________________________________________________________
Un Applet para enviar la bienvenida Import Java.applet.Applet; Import Java.awt.Graphics; Public Class Bienvenido extends Applet { public void paint (Graphips g) g. drawString (“Bienvenidos a”,25,25); g.drawString (“La programación en Java”,25,25); } ______________________________________________________________ <HTML> <applet code=“Bienvenido.class” width= 275 height=35 > </applet> </HTML>
Applet Import Java.applet.Applet; Import Java.awt.Graphics; Public Class Ejemplo1 extends Applet { public void init ( ) { hiboton = new Button (“tocame”); add(hiboton); g.drawString (“La programación en Java”,25,25); } public boolean action (Event evt, Object what) { if (evt.target == hiboton) { hiboton.setLabel(“Click”); return true; } else return false; ______________________________________________________________
AWT - Paneles y Diseños Los diseños nos permiten determinar la ubicación de un componente. AWT nos proporciona cinco tipos de administradores de diseño: FlowLayout, Grid Layout, BorderLayout, Car Layout, GridBadLayout. ______________________________________________________________
AWT - Paneles y Diseños FlowLayout - Se coloca el control siguiente a la derecha del mismo y ajusta a la línea siguiente si es necesario. GridLayout - Nos permite ajustar una rejilla para nuestros componentes. A cada componente se le da una celda y todos los componentes tienen el mismo tamaño. BorderLayout- Funciona como un mapa. North , East , South West y Center. CardLayout - es para apilar componentes, uno sobre otro, como en una baraja de cartas. GridBagLayout - es como el GridLayout, pero nos permite di- seños mas complejos. ______________________________________________________________
AWT - Paneles - Frames Este control es un contenedor de componentes, que ofrece un cuadro invisible. Panel p ; p = new panel( ); p.setLayout (new GridLayout(2,2)); p.add(new Button(“uno”)); p.resize(200,15); add(p); ______________________________________________________________
AWT - Etiqueta CREACION DEL COMPONENTE Para crear una etiqueta emplee uno de los siguientes constructores: - Label( ) Crea una etiqueta vacia con su texto alineado a la izquierda - Label(String) Crea una etiqueta con cadena de texto dada - alineado a la izquierda. - Label(String, int) Crea una etiqueta con cadena y alineación dadas. ______________________________________________________________ Ejemplos: Add (new label (“Alineado a la izquierda”); Add (new label (“Alineado en el centro” , label:CENTER); Add (new label (“Alineado a la derecha”, label.RIGHT);
AWT - Lienzos El lienzo es un componente en el que pueden dibujarse gráficos y que puede recibir eventos de ratón. canvas c; c = new Canvas ( ); // el lienzo debe ser dimensionado - se utiliza el siguiente comando c. resize (250,60); // el objeto canvas se coloca sobre el applet con add (c); ______________________________________________________________
AWT - Botones CREACION DEL COMPONENTE Para crear una etiqueta emplee uno de los siguientes constructores: - Button( ) Crea un boton vacio sin etiqueta. - Button(String) Crea un boton con el objeto cadena dado como etiqueta. Ejemplos: Add (new Button (“Rebobinar”); Add (new Button (“Stop”); PROPIEDADES ______________________________________________________________ - getLabel( ) lee la etiqueta del boton. - setLabel(String) Establece la etiqueta con String..
Métodos del Componente Etiqueta Acción getText( ) Regresa una cadena que contiene el texto de esa etiqueta. setText(String) Cambia el texto de esta etiqueta getAlignment( ) Regresa un entero que representa la alineación. 0 representa Label.LEFT 1- label.CENTER y 2- label.RIGHT setAlignment(int) Cambia la alineación de esta etique- ta a un entero determinado. ______________________________________________________________
Campo de texto CREACION DEL COMPONENTE Para crear un campo de texto emplee uno de los siguientes constructores: - TextField( ) Crea un text field con 0 caracteres de amplitud. - TextField(int) Crea un text Field vacio con la amplitud de caracteres descrita. - TextField(String) Crea un text Field con la amplitud y contenido dado por String. - TextField(String, int) Crea un text Field con la amplitud de int y el contenido de String.. ______________________________________________________________ Ejemplos: TextField tf = new TextField(“Entre su nombre, 30); add(tf);
Campo de texto add (new label(“Inserte su nombre”)); add(new textField(“Tipee su nombre aquí”,40)); add (new label(“Su numero de telefono”)); add(new textField(“Tipee su telefono aquí”,30)); add (new label(“Inserte su clave”)); TextField clave = new TextField(20); clave.setEchoCharacter(‘*’); add (clave); Inserte su nombre Su numero de telefono Inserte su clave ______________________________________________________________ Tipee su nombre aqui Tipee su telefono aqui
Campo de texto Método Acción getText( ) Regresa el texto contenido en este campo de texto setText(String) Coloca la cadena de texto dado en el campo. getColumns( ) Regresa la amplitud de este campo de texto. Select (int, int) Selecciona el texto entre dos posiciones SelectAll ( ) Selecciona todo el texto en el campo isEditable() Si es editable el texto regresa TRUE. setEditable(boolean) TRUE - permite edicción. FALSE - inmoviliza el texto. getEchoChar( ) Regresa el carácter indicado para ocultar la entrada. echoCharIsSet() Regresa TRUE o FALSE según si el campo tiene un carácter oculto o no. ______________________________________________________________
Areas de texto t1 = new TextArea (“esta es una prueba”,10,20); t2 = new TextArea (“esta es el area dos”,10,20); t1.setEditable ( false); // solo de lectura // Establecer diseño setLayout ( new FlowLayout(FlowLayout.LEFT)); add (t1); add(t2); esta es una prueba Es el area dos ______________________________________________________________
Areas de Texto - Métodos getColumns() Regresa el ancho del área de texto en caracteres ó columnas. getRows() Regresa el número de filas. insertText(String, int). Inserta texto. replaceText(String,int,int). Sustituye el texto entre las posiciones indicadas. getSelectedText( ). Obtiene el texto incluido en el area de texto ______________________________________________________________
Barras de desplazamiento Las barras de desplazamiento pueden crearse independientes de la clase Scrollbar que hereda de Component. Pueden ser: hori- zontales y/o verticales. Int orientacion; int valorInicial; int areaVisible; // amplitud total int valorMinimo; int valorMaximo; add (new Scrollbar(Scrollbar, HORIZONTAL,valorInicial, areaVisible, valorMinimo, valorMaximo); ______________________________________________________________ < >
AWT - Menu Menu Menu Menu Menu MenuItem MenuItem Elementos Menú Elementos Items de menú Menu MenuArchivo; ItemAbrirArchivo MenuItem; ItemCerrarArchivo MenuItem; MenuArchivo = new Menu (&Archivo); ItemAbrirArchivo = new MenuItem(&Abrir); ItemCerrarArchivo = new MenuItem(&Cerrar); MenuArchivo.add(ItemAbrirArchivo); MenuArchivo.add(ItemCerrarArchivo); ______________________________________________________________
Métodos del menú de opciones Método Acción getItem(int) Regresa el elemento de la posición dada. countItems( ) Regresa el número de elementos en el menú. getSelectedIndex( ) Regresa la posición del indice del elemento seleccionado. getSelectedItem( ) Regresa el elemento seleccionado como una cadena. select (int) Selecciona al elemento de cadena en la posi- ción dada. Select(String) Regresa el elemento con la cadena dada. ______________________________________________________________