Como saber de donde viene el foco

Alejandro
24 de Abril del 2006
Saludos compañeros, tengo una ventana con muxos textfield, pero quiero saber cuando un textfield recibe el foco (con focusLost), si se puede saber quien es el componente que previamente perdio el foco. Por favor es un poco urgente, os agradeceria mucho vuestra ayuda. Gracias.

midakol
24 de Abril del 2006
te pongo un ejemplo que hace mas cositas pero en la funcion initacctions esta la movida del foco te hay mas cosas pero lo que te interesa es el getOppositeComponent() ok!

Ejemplo:
package menu;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/**
*
* @author Administrador
*/
public class cambio_label extends JFrame{

/** Creates a new instance of cambio_label */
public cambio_label() {
lienzo.add(img1);
lienzo.add(img2);
lienzo.add(rotulo);
initacctions();
this.setBounds(20,30,400,400);


}
public void initacctions(){
img1.addFocusListener(new FocusAdapter() {
public void focusGained(FocusEvent e) {
if (e!=null)
e.getOppositeComponent().setEnabled(false);
}
});
rotulo.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
rotulo.setIcon(new ImageIcon("azul.jpg"));

repaint();

}
});
rotulo.addMouseListener(new MouseAdapter() {
public void mouseExited(MouseEvent e) {
rotulo.setIcon(new ImageIcon("rojo.jpg"));
}
});
img2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
rotulo.setIcon(new ImageIcon("azul.jpg"));
repaint();
}
});
img1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
rotulo.setIcon(new ImageIcon("rojo.jpg"));
repaint();
}
});
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
cambio_label f=new cambio_label();
f.add(f.lienzo);
f.setVisible(true);
}
private JButton img1=new JButton("imagen 1");
private JButton img2=new JButton("imagen 2");
private JLabel rotulo=new JLabel("rotulo" );
private JPanel lienzo=new JPanel();

}