Tabulador en java

Un amigo me paso este codigo para cuando necesitamos navegar en nuestra pantalla con el tabulador espero les sirva
package pruebasalgoritmos;

import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

/*
 * @author Salvador....
 * @version 1.1 24/12/2010
*/

public class KeyBoardFocusManager extends JFrame
{
 private static final long serialVersionUID = 6236724848006577161L;

 JPanel panel;

 private JLabel lbClave=new JLabel("Clave");
 private JLabel lbNombre=new JLabel("Nombre");
 private JLabel lbPaterno=new JLabel("Apellido Paterno");
 private JLabel lblMaterno = new JLabel("Apellido Materno");

 private JTextField txtClave=new JTextField ();
 private JTextField txtNombre=new JTextField ();
 private JTextField txtPaterno=new JTextField ();
 private JTextField txtMaterno = new JTextField();

 private JButton btnNuevo= new JButton("Nuevo");
 private JButton btnSalir= new JButton("Salir");

 public KeyBoardFocusManager()
 {
  super("KeyboardFocusManager" );
  panel= new JPanel();

  panel.setLayout(null);
  panel.setVisible(true);

  lbClave.setBounds(80,40,100,20);
  panel.add(lbClave);
  txtClave.setName("txtClave");
  txtClave.setBounds(200,40,100,20);
  panel.add(txtClave);

  lbNombre.setBounds(80,70,100,20);
  panel.add (lbNombre);
  txtNombre.setBounds (200,70,100,20);
  panel.add(txtNombre);

  lbPaterno.setBounds(80,100,150,20);
  panel.add (lbPaterno);
  txtPaterno.setBounds (200,100,100,20);
  panel.add(txtPaterno);

  lblMaterno.setBounds(80,130,150,20);
  panel.add (lblMaterno);
  txtMaterno.setBounds (200,130,100,20);
  panel.add(txtMaterno);

  btnNuevo.setBounds (350,40,90,20);
  panel.add(btnNuevo);

  btnSalir.setBounds (350,70,90,20);
  panel.add(btnSalir);


  //Evento KeyEventDispatcher el cual hace que funcione la tecla de TABULADOR
  KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher()
  {
   public boolean dispatchKeyEvent(KeyEvent evento) {
    //int tecla = evento.getKeyCode();
    if(evento.getKeyCode() == KeyEvent.VK_TAB)
    {
     validaVacio();
    }
    if (evento.getKeyCode()==KeyEvent.VK_ENTER)
    {
     validaVacio();
     
    }
    return false;
   }
  });

  btnNuevo.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent evento)
   {
    validaVacio();
   }
  });


  btnSalir.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent evento)
   {
    System.exit(0);
   }
  });

  this.getContentPane().add(panel);
  this.setVisible(true);
  this.setSize(500,250);
  this.setLocation(200,100);
 }

 private void validaVacio() {
  if (txtClave.getText().equals(""))
  {
   JOptionPane.showMessageDialog(null, "El campo esta vacio");
   txtClave.requestFocus();
  }else{
   txtMaterno.requestFocus();
  }
 }


 @SuppressWarnings("deprecation")
 public static void main(String []soeck)
 {
  JFrame.setDefaultLookAndFeelDecorated(true);
  JDialog.setDefaultLookAndFeelDecorated(true);

  new KeyBoardFocusManager().show();
 }
}






Post a Comment

Artículo Anterior Artículo Siguiente