• Miércoles 6 de Noviembre de 2024, 04:27

Autor Tema:  Componente Que Perdio El Foco  (Leído 1281 veces)

alemag

  • Miembro MUY activo
  • ***
  • Mensajes: 180
    • Ver Perfil
Componente Que Perdio El Foco
« en: Miércoles 11 de Octubre de 2006, 17:28 »
0
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

kike_monarcas

  • Miembro activo
  • **
  • Mensajes: 41
    • Ver Perfil
Re: Componente Que Perdio El Foco
« Respuesta #1 en: Jueves 12 de Octubre de 2006, 02:03 »
0
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.