如何檢測場景或舞臺在JavaFX 2.1中更改大小的時間?我找不到任何EventHandler。如何在JavaFX中偵聽調整大小事件
17
A
回答
20
有heightProperty
和widthProperty
。您可以使用這些屬性進行綁定,或將偵聽器添加到它們。
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();
}
還是看下面的例子:
(注:有可能更好的方法來https://stackoverflow.com/a/9893911/1054140
9
A之後重新上漿一個場景結束,你可以做到這一點執行操作方式做到這一點,對我來說,做的工作)
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
這是太舊,基本的,但它可以幫助一個noob像我
您可以添加
stage.heightProperty().addListener(e ->{
handle....
});
stage.widthProperty().addListener(e ->{
handle....
});
相關問題
- 1. 如何在JavaScript中附加窗口調整大小事件偵聽器?
- 2. 嘗試用事件偵聽器重新調整div的大小
- 3. JavaFX控件大小調整
- 4. 如何在JavaFX中偵聽Stage的resize事件?
- 5. 在javafx中處理鼠標事件:如何添加偵聽器?
- 6. JavaFX事件/偵聽器/處理程序
- 7. Javafx在鞦韆組件調整大小
- 8. 如何調整JavaFX 3D SubScene的大小?
- 9. 如何觸發調整大小事件?
- 10. JavaFX在fxml中調整畫布大小
- 11. 在StackPane中調整JavaFX ImageView的大小
- 12. 防止SplitPane在javafx中調整大小
- 13. 如何從外部類監聽小部件的調整大小事件
- 14. JavaFx圖像調整大小
- 15. 調整按鈕大小JavaFX
- 16. JavaFx文本大小調整
- 17. JavaFX VBox調整大小
- 18. JavaFX場景調整大小
- 19. 在flex中調整大小事件
- 20. 在jQuery中調整事件大小FullCalendar
- 21. Flexbox調整大小事件(?)
- 22. FullCalendar事件調整大小
- 23. 聆聽另一個窗口調整C#中的事件大小
- 24. 在Angular2組件中偵聽組件大小調整事件的最佳方法是什麼?
- 25. JavaFX:重新調整大小的組件
- 26. Javascript - 刪除窗口「調整大小」偵聽器
- 27. Box2D劫持窗口調整大小偵聽器?
- 28. JW6事件 - 事件偵聽
- 29. 如何在整個表單上偵聽模糊事件?
- 30. 事件偵聽環
謝爾蓋,你可以說,如果有一個解決方案,使用戶時釋放鼠標左鍵階段Resize事件監聽器,寬度和高度屬性? Chris提供了一個解決方案,但它只允許減少事件數量,但不允許只獲取一個事件。 –
@PavelK請提出一個單獨的問題與更多細節。我不明白你想達到什麼目的。 –
謝謝你的回答。請參閱https://stackoverflow.com/questions/44159794/get-single-stage-resize-event-when-user-releases-left-mouse-button –