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