¿Cómo puedo detectar cuándo una escena o escenario cambia de tamaño en JavaFX 2.1? No puedo encontrar ningún EventHandler para esto.Cómo escuchar eventos de cambio de tamaño en JavaFX
17
A
Respuesta
20
Hay heightProperty
y widthProperty
. Puede usar estas propiedades para el enlace o agregar oyentes a ellas.
public void start(Stage stage) {
Scene scene = new Scene(new Group(), 300, 200);
stage.setScene(scene);
stage.titleProperty().bind(
scene.widthProperty().asString().
concat(" : ").
concat(scene.heightProperty().asString()));
stage.show();
}
O véase el siguiente ejemplo: https://stackoverflow.com/a/9893911/1054140
9
Una manera de realizar una acción después de la modificación del tamaño una escena había terminado usted puede hacer esto:
(Nota: puede haber mejores formas de hacer esto, para mí no fue el trabajo)
final Stage primaryStage = getStage() // get your stage from somewhere
// create a listener
final ChangeListener<Number> listener = new ChangeListener<Number>()
{
final Timer timer = new Timer(); // uses a timer to call your resize method
TimerTask task = null; // task to execute after defined delay
final long delayTime = 200; // delay that has to pass in order to consider an operation done
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, final Number newValue)
{
if (task != null)
{ // there was already a task scheduled from the previous operation ...
task.cancel(); // cancel it, we have a new size to consider
}
task = new TimerTask() // create new task that calls your resize operation
{
@Override
public void run()
{
// here you can place your resize code
System.out.println("resize to " + primaryStage.getWidth() + " " + primaryStage.getHeight());
}
};
// schedule new task
timer.schedule(task, delayTime);
}
};
// finally we have to register the listener
primaryStage.widthProperty().addListener(listener);
primaryStage.heightProperty().addListener(listener);
0
esto es demasiado viejo y básico pero podría ayudar a un novato como yo
se puede añadir un detector de anchura y propiedades de altura
stage.heightProperty().addListener(e ->{
handle....
});
stage.widthProperty().addListener(e ->{
handle....
});
Cuestiones relacionadas
- 1. ¿Cómo puedo crear espaciadores de cambio de tamaño en JavaFX?
- 2. Escuchar otra ventana Cambiar el tamaño de eventos en C#
- 3. Escuchar eventos en otra aplicación
- 4. ¿Cómo escuchar todos los eventos de Apple?
- 5. ¿Cómo escuchar un cambio variable en Javascript?
- 6. ¿Puede AppleScript escuchar eventos?
- 7. JavaFX TextArea onChange eventos
- 8. Escuchar el cambio de clase en jquery
- 9. ¿Cómo vincular el cambio de tamaño de escenario con el cambio de tamaño de los componentes?
- 10. iphone/ipad activando eventos de cambio de tamaño inesperados
- 11. ¿Puedo escuchar los eventos táctiles de Android?
- 12. Escuchar eventos de un elemento HTML satisfactorio
- 13. Escuchar eventos en un UIWebView (iOS)
- 14. ¿Cómo puedo escuchar los eventos del portapapeles en node.js?
- 15. Escuchar al cambio de URL en la ventana abierta
- 16. JSpinner Cambio de valor Eventos
- 17. ¿Cómo dejar de escuchar NSEvents?
- 18. JavaFX ¿Cómo establecer el tamaño máximo/mínimo de la ventana?
- 19. Escuchar eventos de reproducción/pausa del teclado mac
- 20. ¿Cómo puede un servicio escuchar gestos/eventos táctiles?
- 21. cambio de tamaño de animación en wikipedia
- 22. Cambio de tamaño de UIViews
- 23. UIModalPresentationFormSheet cambio de tamaño vista
- 24. Cómo crear un evento en el cambio de propiedad y cambio de eventos en C#
- 25. cambio de tamaño múltiple en CodeIgniter
- 26. Cambio de tamaño de imagen de IFrame
- 27. ¿Cómo cambio el tamaño de las pestañas en Vim?
- 28. ¿Cómo cambio el tamaño de pngs con transparencia en PHP?
- 29. ¿Cómo cambio el tamaño de una matriz en MATLAB?
- 30. Cambio de tamaño mediante programación de NSSplitView
Sergey, puedes decir si hay una solución para obtener prueba por etapas de cambio de tamaño cuando usuario libera botón izquierdo del ratón? Hay una solución de Chris sin embargo, solo permite disminuir el número de eventos pero no permite obtener solo un evento. –
@PavelK por favor haga una pregunta por separado con más detalles. No entiendo qué es lo que quieres lograr. –
Gracias por su respuesta. Por favor, vea https://stackoverflow.com/questions/44159794/get-single-stage-resize-event-when-user-releases-left-mouse-button –