Manejo de Eventos Visita FIEC
Eventos En evento es una acción iniciada por el usuario. Ejemplo de eventos son: presionar un botón, cambiar un texto, etc. Cada vez que se produce un evento, se crea un objeto. La clase padre de los eventos es: java.awt.Event Visita FIEC
Tipos de Eventos ComponentEvent: Se producirá este tipo de evento cuando el usuario mueva o redimensione un componente. Ejemplo: ventana.addComponentListener(new ComponentListener(){ public void componentHidden(ComponentEvent e) { System.out.println(e.getComponent().getClass().getName() + " --- Escondido"); } public void componentMoved(ComponentEvent e) { System.out.println(e.getComponent().getClass().getName() + " --- Movido"); public void componentResized(ComponentEvent e) { System.out.println(e.getComponent().getClass().getName() + " --- Redimnecionado "); public void componentShown(ComponentEvent e) { System.out.println(e.getComponent().getClass().getName() + " --- Mostrado"); }); Visita FIEC
Eventos FocusEvent: Se producirá este tipo de evento cuando se cambie el foco de un componente. txtn.addFocusListener(new FocusListener(){ public void focusLost(FocusEvent e){ System.out.println("focus esta en textfield"); } public void focusGained(FocusEvent e){ }); MouseEvent: Se producirá cuando el usuario efectúe un movimiento con el ratón o haga un click. btn.addMouseListener(new MouseAdapter() { public void mouseEntered(MouseEvent evt) { System.out.println(“esta el mouse encima"); Visita FIEC
Eventos MouseMotion: ventana.addMouseMotionListener(new MouseMotionListener() { public void mouseMoved(MouseEvent e){ System.out.println(e.getX()); } public void mouseDragged(MouseEvent e){System.out.println("drag"); } }); KeyEvent: se producirá cuando el usuario pulse una tecla. txtn.addKeyListener(new KeyListener(){ public void keyTyped(KeyEvent e){ System.out.println("se escirbio"); public void keyPressed(KeyEvent e){ System.out.println("se preciono"); public void keyReleased(KeyEvent e){ System.out.println("se solto la tecla1"); Visita FIEC
Métodos asociados a la clase MouseEvent getClickCount(): Devuelve el número de clicks asociados con el evento. getX(): Devuelve la posición x del mouse cuando se genera un evento. getY(): Devuelve la posición y del mouse cuando se genera un evento. Visita FIEC
Métodos de la clase KeyEvent getKeyChar(): Devuelve el carácter asociado con la tecla que produjo el evento. getKeyCode(): Devuelve el código de la tecla que produjo el evento. getKeyModifiersText(int): Devuelve una cadena que indica el modificador de la tecla, por ejemplo “Shift”. getKeyText(int): Devuelve una cadena que indica el tipo de tecla pulsada. Ejmp: F1, indicando que es una tecla de función. Visita FIEC
Las Interfases de escucha (Event Listeners) Para poder capturar todos los eventos, Java proporciona las interfases de escucha (listeners). Para cada tipo de evento existe una interfase de escucha. Ejemplo: Para los eventos de tipo ActionEvent existe la interfase escucha ActionListener. Para los eventos de tipo MouseEvent existe la interfase escucha MouseListener. Visita FIEC
Métodos de la Interfase MouseListener mouseClicked(MouseEvent e): cuando se hace un click de ratón mouseEntered(MouseEvent e): cuando el ratón entra en la aplicación. mouseExited(MouseEvent e): cuando el ratón sale de la aplicación. mousePressed(MouseEvent e): se ha pulsado un botón del ratón. mouseReleased(MouseEvent e): se ha soltado un botón del ratón. Visita FIEC
Métodos de la Interfase MouseListener btn.addMouseListener(new MouseListener() { public void mouseEntered(MouseEvent evt) { System.out.println("You clicked the button, using a MouseListenr"); System.out.println(evt.getX()); System.out.println(evt.getY()); System.out.println(evt.getClickCount()); } public void mouseClicked(MouseEvent e) {} public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseExited(MouseEvent e) {} }); Visita FIEC
Método de la Interfase ActionListener actionPerformed(ActionEvent e): Es invocado cuando una acción ocurre, como presionar un botón. combo.addItem("uno"); combo.addItem("dos"); combo.addItem("tres"); combo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("--seleccionado -->"+combo.getSelectedItem().toString()); System.out.println("--seleccionado item -->"+combo.getSelectedIndex()); } }); Visita FIEC
Método de la Interfase ListSelection String label_[] = { "Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven" }; JList lista_=new JList(label_); lista_.setBounds(300,29,100,50); lista_.addListSelectionListener(new javax.swing.event.ListSelectionListener() { public void valueChanged(javax.swing.event.ListSelectionEvent evt) { System.out.println(lista_.getSelectedValue()); System.out.println(lista_.getSelectedIndex()); } }); Visita FIEC
Adaptadores Cuando se desea escuchar algún tipo de evento se deben implementar todos los métodos de la Interfase de escucha (listener interfase), para que nuestra clase no tenga que ser definida como abstracta. Para resolver este problema se hicieron los adaptadores. Visita FIEC
De esta forma cuando creemos una clase que hereda de MouseAdapter sólo implementaremos los métodos necesarios y que más nos interesen para gestionar los eventos. Visita FIEC
Ejemplo en btn btn.addFocusListener(new FocusListener(){ public void focusGained(FocusEvent e) { System.out.println("Focus "+e.getSource()); } public void focusLost(FocusEvent e){ System.out.println("focus esta en textfield"); }); btn.addFocusListener( new FocusAdapter(){