Seguidores

MIS WEBS



martes, 16 de enero de 2018

Eventos de foco FocusListener java

 


Un evento de foco es aquel que se desemboca cuando tenemos seleccionado un determinado espacio de la interfaces, podemos tener un botón seleccionado, un marco, un archivo. Supongo que alguna vez habéis rellenado un formulario en una web, cuando cambias de casilla estas poniendo el foco en la siguiente casilla.
Para ello utilizaremos la interfaces FocusListener, por lo que estaremos obligados a implementar 2 métodos:
·         focusGained (FocusEvent e): el elemento adquiere el foco.
·         focusLost (FocusEvent e): el elemento pierde el foco.


En caso de no desear implementar los dos disponemos de la clase adaptadora FocusAdapter.
0.      Necesitaremos dos textFiled , las variables se declaran dentro de la lámina porque serán internas y de uso interno solo en la lamina


class A_lamina extends JPanel{
             public void paintComponent(Graphics g){//constructor       
                    super.paintComponent(g);
                   
                   
                    setBackground(Color.DARK_GRAY);
                    setLayout(null); //establecer diseño por defecto no
                    cuadro1=new JTextField();
                    cuadro2=new JTextField();
                    cuadro1.setBounds(100,50,150,20);
                    cuadro2.setBounds(100,90,150,20);
                    add(cuadro1);
                    add(cuadro2);
             }
JTextField cuadro1,cuadro2;
}

1.  Ahora generamos una clase interna con el oyente y ponemos y ponemos el cuadro una como desencadenante.

       class A_lamina extends JPanel{
             public void paintComponent(Graphics g){//constructor       
                    super.paintComponent(g);
                    setBackground(Color.DARK_GRAY);
                    setLayout(null); //establecer diseño por defecto no
                    cuadro1=new JTextField();
                    cuadro2=new JTextField();
                    cuadro1.setBounds(100,50,150,20);
                    cuadro2.setBounds(100,90,150,20);
                    add(cuadro1);
                    add(cuadro2);
                    cuadro1.addFocusListener(new escucha());
             }
             JTextField cuadro1,cuadro2;      
             private Image foto;
private class escucha implements FocusListener{
public void focusGained(FocusEvent e) {System.out.println("estas dentro del cuadro 1");}
public void focusLost(FocusEvent e) {System.out.println("estas fuera del cuadro 1");}
}                             
}
En la siguiente práctica realizaremos un marco al que le introduciremos una lámina con una foto de fondo y en la que pondremos dos cuadros de texto. Para posteriormente generar los eventos de foco, ratón, teclado

 

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;
public class Practica_JText {
             public static void main (String[] arg) {
                    A_marco1 cuadro = new A_marco1();
                    cuadro.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             }
       }
       class A_marco1 extends JFrame{
             public A_marco1() {
                    setVisible(true);
                    setBounds(150, 150, 500, 300);
                    add(new A_lamina());
                    addWindowListener(new escucha2());
                    addWindowStateListener(new escucha2());                    
                    addKeyListener(new escucha2());
                    addMouseListener(new escucha2());
             }
       }
       class A_lamina extends JPanel{
             public void paintComponent(Graphics g){//constructor
                    super.paintComponent(g);
                    try { //tratamineto de excepciones, haz esto y si no catch
                           foto = ImageIO.read(new File("C:\\Users\\dagip\\Desktop\\BOGEER\\imagenes\\JAVA2.jpg"));//ruta relativa 
                           } catch(IOException e) {
                           JOptionPane.showConfirmDialog(null, "no esta la foto");
                           }
                           //escribimos la foto en nuestra lamina
                           g.drawImage(foto, 0, 0, null);
                    setBackground(Color.DARK_GRAY);
                    setLayout(null); //establecer diseño por defecto no
                    cuadro1=new JTextField();
                    cuadro2=new JTextField();
                    cuadro1.setBounds(100,50,150,20);
                    cuadro2.setBounds(100,90,150,20);
                    add(cuadro1);
                    add(cuadro2);
                    cuadro1.addFocusListener(new escucha());
             }
             JTextField cuadro1,cuadro2;      
             private Image foto;
       private class escucha implements FocusListener{
             public void focusGained(FocusEvent e) {System.out.println("estas dentro del cuadro 1");}
             public void focusLost(FocusEvent e) {System.out.println("estas fuera del cuadro 1");}
             }
       }
      
       class escucha2 implements WindowListener,WindowStateListener,MouseListener,ActionListener,KeyListener{

             public void windowStateChanged(WindowEvent e) {}
             public void windowActivated(WindowEvent e) {}
             public void windowClosed(WindowEvent e) {}
             public void windowClosing(WindowEvent e) {}
             public void windowDeactivated(WindowEvent e) {}
             public void windowDeiconified(WindowEvent e) {}
             public void windowIconified(WindowEvent e) {}
             public void windowOpened(WindowEvent e) {}
             public void keyPressed(KeyEvent e) {}
             public void keyReleased(KeyEvent e) {}
             public void keyTyped(KeyEvent e) {}
             public void actionPerformed(ActionEvent e) {}
             public void mouseClicked(MouseEvent e) {}
             public void mouseEntered(MouseEvent e) {}
             public void mouseExited(MouseEvent e) {}
             public void mousePressed(MouseEvent e) {}
             public void mouseReleased(MouseEvent e) {}
            

       }

No hay comentarios:

Publicar un comentario

Buscar este blog

Sandisk y Western Digital