SoloCodigo

Programación General => Java => Mensaje iniciado por: alemag en Miércoles 11 de Octubre de 2006, 17:28

Título: Componente Que Perdio El Foco
Publicado por: alemag en Miércoles 11 de Octubre de 2006, 17:28
Saludos compañeros, quisiera saber si hay alguna manera de saber que componente (y si se puede, el nombre que tiene en la aplicacion, no solo el tipo) es el que perdio el foco en un momento determinado.

Gracias por adelantado
Título: Re: Componente Que Perdio El Foco
Publicado por: kike_monarcas en Jueves 12 de Octubre de 2006, 02:03
Hola. Puedes implementar una clase con la interfaz FocusListener y en sus métodos procesar la información que requieres, como saber que componente gana o pierde el foco. Aqui un ejemplo bastante sencillo, espero que te sirva. Saludos!

Código: Text
  1.  
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import javax.swing.*;
  5.  
  6. public class PruebaFoco {
  7.    
  8.     public static void main( String args[] ) {
  9.         new FormaPruebaFoco();
  10.     }
  11. }
  12.  
  13. class FormaPruebaFoco extends JFrame{
  14.    
  15.     public FormaPruebaFoco(){
  16.         super( "Aplicación con el Foco en Java" );
  17.        
  18.         Container contenedor = getContentPane();
  19.         contenedor.setLayout( null );
  20.        
  21.         campo1 = new JTextField( "Campo1" );
  22.         campo1.setName( "Campo1" );
  23.         campo2 = new JTextField( "Campo2" );
  24.         campo2.setName( "Campo2" );
  25.         contenedor.add( campo1 );
  26.         contenedor.add( campo2 );
  27.         campo1.setBounds( 50, 50 ,100, 28 );
  28.         campo2.setBounds( 50, 100, 100, 28 );
  29.         campo1.addFocusListener( new ProcesaFoco() );
  30.         campo2.addFocusListener( new ProcesaFoco() );
  31.        
  32.         setSize( 200, 200 );
  33.         setVisible( true );
  34.         setResizable( false );
  35.         setLocationRelativeTo( null );
  36.         setDefaultCloseOperation( EXIT_ON_CLOSE );
  37.     }
  38.    
  39.     private JTextField campo1, campo2;
  40. }
  41.  
  42. class ProcesaFoco implements FocusListener{
  43.    
  44.     public void focusGained( FocusEvent evento ){
  45.         JTextField campo = (JTextField)evento.getComponent();
  46.         System.out.println( campo.getName() + " ganó el foco" );
  47.     }
  48.    
  49.     public void focusLost( FocusEvent evento ){
  50.         JTextField campo = (JTextField)evento.getComponent();
  51.         System.out.println( campo.getName() + " perdió el foco" );
  52.     }
  53. }
  54.  
  55.