Làm thế nào tôi có thể phát hiện khi một cảnh hoặc Giai đoạn thay đổi kích thước trong JavaFX 2.1? Tôi không thể tìm thấy bất kỳ EventHandler nào cho việc này.Cách nghe các sự kiện thay đổi kích thước trong JavaFX
17
A
Trả lời
20
Có heightProperty
và widthProperty
. Bạn có thể sử dụng các thuộc tính này để ràng buộc hoặc thêm người nghe vào chúng.
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();
}
Hoặc xem ví dụ sau: https://stackoverflow.com/a/9893911/1054140
9
Một cách để thực hiện một hành động sau khi tái định cỡ một cảnh đã được hoàn tất, bạn có thể làm điều này:
(Lưu ý: Có cách nào có thể tốt hơn để làm điều này, đối với tôi nó đã thực hiện công việc)
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
quá cũ và cơ bản nhưng nó có thể giúp ích cho tôi như tôi
bạn có thể thêm một người biết lắng nghe với chiều rộng và chiều cao tính
stage.heightProperty().addListener(e ->{
handle....
});
stage.widthProperty().addListener(e ->{
handle....
});
Các vấn đề liên quan
- 1. Có sự kiện thay đổi kích thước UIView không?
- 2. jQuery: Chrome textareas và thay đổi kích thước sự kiện
- 3. Thay đổi kích thước một phần tử kích hoạt sự kiện thay đổi kích thước của cửa sổ
- 4. Cách thay đổi kích thước nội dung JavaFX ScrollPane cho vừa với kích thước hiện tại
- 5. WPF: GridViewColumn thay đổi kích thước sự kiện
- 6. sự kiện orientationchange bắn cuộn và thay đổi kích thước sự kiện
- 7. Tắt sự kiện thay đổi kích thước trên sự kiện lịch tùy chỉnh, có thể không?
- 8. Kích thước văn bản thay đổi theo lập trình đang ngăn sự kiện thay đổi
- 9. AngularJS/jQuery: thay đổi văn bản trong span không kích hoạt thay đổi kích thước sự kiện
- 10. Có thể nghe sự kiện "thay đổi kiểu" không?
- 11. Sự kiện đã thay đổi hướng sự kiện hoặc người nghe Android
- 12. sự kiện javafx choicebox
- 13. Làm cách nào để tạo hoạt ảnh Thay đổi kích thước cho giai đoạn JavaFX?
- 14. kích hoạt sự kiện khi thay đổi lớp học
- 15. jQuery: Cách nghe các thay đổi DOM?
- 16. Làm cách nào để liên kết thay đổi kích thước với kích thước của các thành phần?
- 17. Thay đổi kích thước GLKView
- 18. Thay đổi kích thước bước của NumberPicker
- 19. Thay đổi kích thước svg khi cửa sổ được thay đổi kích thước trong d3.js
- 20. Cách tự động thay đổi kích thước lưới khi biểu mẫu được thay đổi kích thước?
- 21. Nghe các sự kiện lịch sử trong FireFox?
- 22. Sự kiện JAVAFX được kích hoạt khi chọn hộp kiểm
- 23. Không thể nghe KeyEvent trong JavaFX
- 24. Làm cách nào để nghe các sự kiện trong symfony?
- 25. AS3 - Trình nghe sự kiện chỉ kích hoạt một lần
- 26. Thay đổi kích thước khung UIWebView không thay đổi kích thước nội dung bên trong
- 27. javascript thay đổi kích thước sự kiện khi cuộn - di động
- 28. Thay đổi kích thước bitmap
- 29. Thay đổi kích thước ArrayBuffer
- 30. WinForms - hành động sau khi thay đổi kích thước sự kiện
Sergey, bạn có thể nói nếu có một giải pháp để có được sự kiện giai đoạn thay đổi kích thước khi phát hành sử dụng nút chuột trái? Có một giải pháp từ Chris tuy nhiên nó chỉ cho phép giảm số lượng sự kiện nhưng không cho phép chỉ có một sự kiện. –
@PavelK vui lòng tạo câu hỏi riêng với nhiều chi tiết hơn. Tôi không hiểu bạn muốn đạt được điều gì. –
Cảm ơn bạn đã trả lời. Vui lòng xem https://stackoverflow.com/questions/44159794/get-single-stage-resize-event-when-user-releases-left-mouse-button –