Author Topic: Problema con jfilechooser  (Read 8903 times)

juanpe77

  • Jr. Member
  • **
  • Posts: 57
  • Karma: 0
    • View Profile
Problema con jfilechooser
« on: Febrero 01, 2015, 11:38:44 am »
Buenas de nuevo.
En mi proyecto, dispongo de una agenda para guardar citas a la que se le da a la gente.
Cada cita debe tener una imagen previa. Para insertar dicha imagen utilizo jfilechooser. El problema viene por la función timer,que le tengo asignada. Aunque esté "navengado" por el explorador de jfilechooser, la función timer continua y cierra la sesión del usuario, pero no cierra el jfilechooser,y al elegir la imagen correspondiente. Vuelve al jframe de las citas. Creandose dos jframes,uno para las citas y el otro jframe de inicio de sesión.
¿Cómo puedo resolver este problema?
Un saludo.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Problema con jfilechooser
« Reply #1 on: Febrero 01, 2015, 07:10:25 pm »
Hola:

En vez de JFileChooser.show.... , haz un new de JFileChooser y mételo en un JDialog. De esta forma tienes opción de cerrarlo/ocultarlo cuando pase el tiempo de sesión.

Se bueno.

juanpe77

  • Jr. Member
  • **
  • Posts: 57
  • Karma: 0
    • View Profile
Re: Problema con jfilechooser
« Reply #2 on: Febrero 01, 2015, 11:25:41 pm »
Buenas de nuevo.
Realizando como tú dices. ¿No se me caducará el tiempo de sesión cuando "navegue" por el jfilechooser insertado en un jdialog?
Un saludo.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Problema con jfilechooser
« Reply #3 on: Febrero 01, 2015, 11:32:37 pm »
No lo sé. ¿Cómo caducas el tiempo de sesión?
¿Cual es el problema exactamente? ¿No quieres que caduque el tiempo de sesión o quieres que al caducar se cierre el filechooser?. Había entendido esto último "cierra la sesión del usuario, pero no cierra el jfilechooser".

Se bueno.

juanpe77

  • Jr. Member
  • **
  • Posts: 57
  • Karma: 0
    • View Profile
Re: Problema con jfilechooser
« Reply #4 on: Febrero 02, 2015, 01:27:44 am »
Quiero realizar estos dos puntos:
1.Se cierre el jfilechooser al pasar tiempo de sesión.
2.Que si estás navegando por el jfilechooser,la cual se está realizando una actividad, no se pase el tiempo de sesión.
Necesito esos dos apartados.
Un saludo.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Problema con jfilechooser
« Reply #5 on: Febrero 02, 2015, 02:00:05 am »
La forma en que puedes hacerlo más fácil para toda la aplicación es usando

Toolkit.getDefaultToolkit().addAwtEventListener(....)

de estas formas recibirás todos los eventos de ratón que ocurran en tu aplicación. Mientas haya eventos, es que el usuario está haciendo cosas.

Se bueno.

juanpe77

  • Jr. Member
  • **
  • Posts: 57
  • Karma: 0
    • View Profile
Re: Problema con jfilechooser
« Reply #6 on: Febrero 02, 2015, 10:48:41 am »
¿Mejor que el evento MouseMoved? Y ese evento del que sugieres, ¿sirve para una pantalla táctil? La aplicación que estoy desarrollando es para un TPV.
Un saludo.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Problema con jfilechooser
« Reply #7 on: Febrero 02, 2015, 02:39:59 pm »
Hola:

¿En una pantalla táctil hay MouseMoved? ¿Sirve MouseMoved?

El método que yo te digo es el método de bajo nivel, te avisará de todos los eventos que haya. De hecho, MouseMoved o cualquier otro, proceden de él. La diferencia es que MouseMoved o cualquier otro tienes que añadirlo sobre un componente concreto (ventana, panel, boton) y este awtEventListener te registras solo una vez y sirve para cualquier componente de tu aplicación (incluido el JFileChooser).

Se bueno.

juanpe77

  • Jr. Member
  • **
  • Posts: 57
  • Karma: 0
    • View Profile
Re: Problema con jfilechooser
« Reply #8 on: Febrero 03, 2015, 11:25:56 am »
He estado mirando lo que me has dicho.
A lo que he llegado a esta conclusión ayudandome por internet:
Toolkit.getDefaultToolkit().addAWTEventListener(
new AWTEventListener() {
@Override
public void eventDispatched(AWTEvent event) {
tiempo=0;//variable que controla la sesión del usuario,cuando llega al valor 60 se cierra la sesión.Por esa razón la inicializo a cero.
}
},
AWTEvent.COMPONENT_EVENT_MASK |
AWTEvent.CONTAINER_EVENT_MASK |
AWTEvent.FOCUS_EVENT_MASK |
AWTEvent.KEY_EVENT_MASK |
AWTEvent.MOUSE_EVENT_MASK |
AWTEvent.MOUSE_MOTION_EVENT_MASK |
AWTEvent.WINDOW_EVENT_MASK |
AWTEvent.ACTION_EVENT_MASK |
AWTEvent.ADJUSTMENT_EVENT_MASK |
AWTEvent.ITEM_EVENT_MASK |
AWTEvent.TEXT_EVENT_MASK |
AWTEvent.INPUT_METHOD_EVENT_MASK |
AWTEvent.PAINT_EVENT_MASK |
AWTEvent.INVOCATION_EVENT_MASK |
AWTEvent.HIERARCHY_EVENT_MASK |
AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK |
AWTEvent.MOUSE_WHEEL_EVENT_MASK |
AWTEvent.WINDOW_STATE_EVENT_MASK |
AWTEvent.WINDOW_FOCUS_EVENT_MASK
);

Me sale todo en rojo.¿Qué estoy haciendo mal?¿Cómo debería plantearlo?
Un saludo.
PD: soy novato...

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Problema con jfilechooser
« Reply #9 on: Febrero 03, 2015, 02:38:55 pm »
¿Qué es lo que se pone rojo?

Se bueno.

juanpe77

  • Jr. Member
  • **
  • Posts: 57
  • Karma: 0
    • View Profile
Re: Problema con jfilechooser
« Reply #10 on: Febrero 03, 2015, 05:36:37 pm »
Todo lo que te expuesto antes.
No sé qué hago mal.
Un saludo.

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Problema con jfilechooser
« Reply #11 on: Febrero 03, 2015, 10:32:49 pm »
Hola:

Si lo de que se te pone en rojo es que el IDE (eclipse/netbeans) te lo marca en rojo porque no compila, estaría bien que dijeras qué error concreto te está dando. El ide suele indicarlo.

Se bueno.

juanpe77

  • Jr. Member
  • **
  • Posts: 57
  • Karma: 0
    • View Profile
Re: Problema con jfilechooser
« Reply #12 on: Febrero 03, 2015, 11:15:26 pm »
Buenas tardes, he realizado este método:
@Override
    public void eventDispatched(AWTEvent event) {
       
         if(event.getID()== AWTEvent.COMPONENT_EVENT_MASK |
        event.getID()==AWTEvent.CONTAINER_EVENT_MASK |
        event.getID()==AWTEvent.FOCUS_EVENT_MASK |
        event.getID()==AWTEvent.KEY_EVENT_MASK |
        event.getID()==AWTEvent.MOUSE_EVENT_MASK |
        event.getID()==AWTEvent.MOUSE_MOTION_EVENT_MASK |
        event.getID()==AWTEvent.WINDOW_EVENT_MASK |
        event.getID()==AWTEvent.ACTION_EVENT_MASK |
        event.getID()==AWTEvent.ADJUSTMENT_EVENT_MASK |
        event.getID()==AWTEvent.ITEM_EVENT_MASK |
        event.getID()==AWTEvent.TEXT_EVENT_MASK |
        event.getID()==AWTEvent.INPUT_METHOD_EVENT_MASK |
        event.getID()==AWTEvent.PAINT_EVENT_MASK |
        event.getID()==AWTEvent.INVOCATION_EVENT_MASK |
        event.getID()==AWTEvent.HIERARCHY_EVENT_MASK |
        event.getID()==AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK |
        event.getID()==AWTEvent.MOUSE_WHEEL_EVENT_MASK |
        event.getID()==AWTEvent.WINDOW_STATE_EVENT_MASK |
        event.getID()==AWTEvent.WINDOW_FOCUS_EVENT_MASK |
       event.getID()==AWTEvent.COMPONENT_EVENT_MASK |
        event.getID()==AWTEvent.CONTAINER_EVENT_MASK |
        event.getID()==AWTEvent.FOCUS_EVENT_MASK |
        event.getID()==AWTEvent.KEY_EVENT_MASK |
        event.getID()==AWTEvent.MOUSE_EVENT_MASK |
        event.getID()==AWTEvent.MOUSE_MOTION_EVENT_MASK |
        event.getID()==AWTEvent.WINDOW_EVENT_MASK |
        event.getID()==AWTEvent.ACTION_EVENT_MASK |
        event.getID()==AWTEvent.ADJUSTMENT_EVENT_MASK |
        event.getID()==AWTEvent.ITEM_EVENT_MASK |
        event.getID()==AWTEvent.TEXT_EVENT_MASK |
        event.getID()==AWTEvent.INPUT_METHOD_EVENT_MASK |
        event.getID()==AWTEvent.PAINT_EVENT_MASK |
        event.getID()==AWTEvent.INVOCATION_EVENT_MASK |
        event.getID()==AWTEvent.HIERARCHY_EVENT_MASK |
        event.getID()==AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK |
        event.getID()==AWTEvent.MOUSE_WHEEL_EVENT_MASK |
        event.getID()==AWTEvent.WINDOW_STATE_EVENT_MASK |
        event.getID()==AWTEvent.WINDOW_FOCUS_EVENT_MASK)
         tiempo=0;
    }
¿Con este método ya no se cerrará la sesión mientras navega el usuario por el jfilechooser?
Un saludo.
« Last Edit: Febrero 03, 2015, 11:47:34 pm by juanpe77 »

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5466
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Problema con jfilechooser
« Reply #13 on: Febrero 04, 2015, 12:55:25 am »
No sé, prueba a ver. Revisa si se le llama según vas tocando.

Se bueno.

juanpe77

  • Jr. Member
  • **
  • Posts: 57
  • Karma: 0
    • View Profile
Re: Problema con jfilechooser
« Reply #14 on: Febrero 04, 2015, 11:43:32 am »
Nada. No funciona.
No sé qué colocarle...

 

ey