Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Nakatsukasa Itero en 3 Mayo 2012, 20:33 pm



Título: [Solucionado] como evitar que se cierre un stage o Scene (JavaFx 2.0.3)?
Publicado por: Nakatsukasa Itero en 3 Mayo 2012, 20:33 pm
pues primero que nada buen dia... y diran otra vez este vato.... debe de aprender mas cosas.... ;D. el punto es que como soy el unico que programa cuando mi jefe no está aquí y eso es casi todos los dias por lo menos 4 horas.... pues recurro a donde pueda.

Ok ahora me topo con el problema de cerrar un Stage (que vendria siendo un tipo de JFrame, Frame, etc. pero en javafx), he visto las soluciones de como se remueve un listener y un event (de cualquier tipo) en swing, pero para fx, la coa cambia, he insertado
Código:
primaryStage.removeEventHandler(WindowEvent.WINDOW_CLOSE_REQUEST, eHCerrar);
donde el PrimaryStage pues vendria siendo el frame o similar en cuestion
el WindowEvent.WINDOW_CLOSE_REQUEST, viene siendo mi tipo de handler o evento, si miran bien se toma el de cerrar.
eHCerrar es el handler en si...

en resumen la linea dice que quiero remover el evento de cierre de una ventana, pero ni pex.... ya le puse puntos a todas partes (uso el netbeans para autocompletar codigo, ya que no existe un composer para javafx 2.0.3) y se sigue cerrando el frame, claro que ya puedo hacer acciones mientras se sierra, es decir, que le doy click al boton de cerrrar y me muestra un dialogo para ver si quiero cerrar o no (con todo y opciones de si le doy a si, que haga tal, si no, haga otro tal), pero le de a si o no, me termina cerrando la ventana, y es lo que no quiero (bueno, mi jefe, de ser por mi, le ponia al stage:
Código:
Stage st = new Stage(StageStyle.UNDECORATED);
pero el cliente quiere que se pueda hacer un resize y el contenido tenga un zoom en cuestion, cosa que no sucede si le pongo undecorated (le quita el borde a la ventana :-\))

les agradezo sus opiniones y ayuda  :silbar:  :D  :-(  :-\  :D !


Título: Re: como evitar que se cierre un stage o Scene (JavaFx 2.0.3)?
Publicado por: ny0x en 6 Mayo 2012, 07:10 am
Defines un nuevo EventHandler y consumas el evento

Código
  1. import javafx.application.Application;
  2. import javafx.event.EventHandler;
  3. import javafx.scene.Group;
  4. import javafx.scene.Scene;
  5. import javafx.scene.paint.Color;
  6. import javafx.stage.Stage;
  7. import javafx.stage.WindowEvent;
  8.  
  9. public class NoClose extends Application{
  10.    public static void main(String[] args) {launch(args);}
  11.  
  12.    @Override public void start(final Stage primaryStage){
  13.        Group root = new Group();
  14.        Scene scene = new Scene(root, 300, 200, Color.WHITE);
  15.        primaryStage.setScene(scene);
  16.        primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>(){
  17.            @Override public void handle(WindowEvent event) {
  18.                event.consume();           //Consumar el evento
  19.            }  
  20.        });
  21.        primaryStage.show();
  22.    }
  23. }
  24.  


Título: Re: como evitar que se cierre un stage o Scene (JavaFx 2.0.3)?
Publicado por: Nakatsukasa Itero en 9 Mayo 2012, 21:06 pm
 ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)
 :D
SO CLOSE AND SO FAR!!!!
tan facil y dificil a la vez, me refiero a que era esa linea tan facil de escribir y tan apurado que me tenia, itsumo arigatou!!!! onto arigatou!!!!!
 ::)
 ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)  ;-)