// // Habilitar.java // Copyright (c) 1996, Agustin Froufe // Todos los derechos reservados. // // No se asume ninguna responsabilidad por el uso o alteracion de este // software. Este software se proporciona COMO ES, sin garantia de ningun // tipo de su funcionamiento y en ningun caso sera el autor responsable de // daños o perjuicios que se deriven del mal uso del software, aun cuando // este haya sido notificado de la posibilidad de dicho daño. // // Compilador: javac 1.0 // Autor: Agustin Froufe // Creacion: 26-Ago-1996 19:57:40 // //-------------------------------------------------------------------------- // Esta informacion no es necesariamente definitiva y esta sujeta a cambios // que pueden ser incorporados en cualquier momento, sin avisar. //-------------------------------------------------------------------------- import java.awt.*; import java.applet.Applet; // Clase Texto modificada para el control de los botones class NTextField extends TextField { Component rgcomp[]; // En el operador le pasamos un array de componentes que será el // que mantenga controlado public NTextField( Component rgcomp[] ) { super(); // De entrada, todos los componentes están deshabilitados this.rgcomp = rgcomp; for( int i=0; i < rgcomp.length; i++ ) rgcomp[i].disable(); } // Cuando se pulsa una tecla y se recibe el evento, se trata public boolean keyDown( Event evt,int nKey ) { boolean fin = true; int n = getText().length(); // Teclas especiales if( ( nKey > 96 && nKey < 123 ) || ( nKey > 64 && nKey < 91 ) || ( nKey > 47 && nKey < 58 ) || ( nKey == 32 ) ) { fin = false; n++; } // Tecla de borrado hacia atrás else if( nKey == 8 ) { fin = false; n--; } // También controlamos la longitud del texto que se escribe en // el campo de texto, de forma que si se borran todos los // caracteres del campo, se deshabilitan los componentes if( n > 0 ) { for( int i=0; i < rgcomp.length; i++ ) rgcomp[i].enable(); } else { for( int i=0; i < rgcomp.length; i++ ) rgcomp[i].disable(); } return( fin ); } } // Creamos el applet, en donde creamos dos botones que serán los que se // controles, en cuando a su habilitación, desde el contenido del campo // de texto public class Habilitar extends Applet { public void init() { setLayout( new BorderLayout() ); Component rgcomp[] = new Component[2]; rgcomp[0] = new Button( "Añadir" ); rgcomp[1] = new Button( "Borrar" ); Panel p = new Panel(); p.add( rgcomp[0] ); p.add( rgcomp[1] ); add( "South",p ); add( "North",new NTextField( rgcomp ) ); } public Insets insets() { return new Insets( 5,5,5,5 ); } public static void main( String args[] ) { Frame f = new Frame( "Habilitación" ); Habilitar h = new Habilitar(); h.init(); f.add( "Center",h ); f.pack(); f.show(); } } //---------------------------------------- Final del fichero Habilitar.java