SoloCodigo
Programación General => Java => Mensaje iniciado por: alemag en Miércoles 25 de Octubre de 2006, 10:26
-
Saludos compañeros, como podria saber que componente es el que recibe el foco, el componente en concreto. Lo que quiero hacer es poner en el focusLost de un componente que si el foco lo recibe un componente haga una cosa y si lo recibe otro distinto haga otra cosa distinta, y para ello necesito saber como conseguir ese componente que lo recibe. Hay alguna manera de saberlo ?
Gracias por adelantado.
-
Hola.
Echa un vistazo a la siguiente web:
http://java.sun.com/j2se/1.4.2/docs/api/ja.../FocusSpec.html (http://java.sun.com/j2se/1.4.2/docs/api/java/awt/doc-files/FocusSpec.html)
Y mira lo que hay en el API de Java acerca de la clase FocusEvent.
Un saludo.
Silverfox
-
Saludos, el codigo que yo tengo es este (esta clase es donde se muestran los componentes):
Public class NuevoProyecto extends Júrame
{
Public NuevoProyecto ( …. Parámetros ….)
{
// se muestran un campo de edicion y su lista correspondiente (lista cadenas positiva), // asi cuatro veces (lista positiva, negativa, test positiva, test negativa)
Texto_neg.addFocusListener(new FocusAdapter()
{
Public void FocusGained(FocusEvent e)
{
// hacer que si el foco le viene de texto_pos, saque un cuadro de dialogo predeterminado, y si no pues nada.
}
}
}
Pero de la otra manera que me dijisteis no me deja, que instrucción puedo poner en el focusGained ¿??
Por favor ayudadme.
-
Hola...
Como ya te dije, la solución a tus problemas está en el API Java, en la clase FocusEvent, concretamente, en el método getOppositeComponent().
Un saludo.
Silverfox
-
si, xo solo me detecta que es un JTextField, yo quiero saber que JTextField, si es texto_pos, texto_neg, texto_test_pos o texto_test_neg, es decir, el nombre que yo le he puesto a ese componente.
Por favor, ayudame. Gracias.
-
Hola.
Claro que te dice sólo qué clase de elemento es... No querrás que te indique el nombre de la variable en tiempo de ejecución... ;)
Si miras el API de Component, verás que tienes un método getName().
Lo único que tienes que hacer es un setName() en cada uno de los lugares que traten el foco de forma diferente y comparar las cadenas de nombres.
Espero que te sirva.
Un saludo.