Tôi cố gắng để làm việc xung quanh lỗi này trong jdk: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8088624hiển thị một tooltip trong JavaFX mang lại sân khấu của mình vào foreground
public class Blubb extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Button btn = new Button("Click");
btn.setTooltip(new Tooltip("Blubb"));
Scene scene = new Scene(new BorderPane(btn), 320, 240);
primaryStage.setScene(scene);
primaryStage.show();
Stage secondStage = new Stage();
secondStage.setScene(new Scene(new BorderPane(new Button("Click")), 320, 240));
//secondStage.initOwner(primaryStage);
secondStage.show();
}
}
Nếu nút trên sân khấu chính được bay lượn, nó sẽ đến trước giai đoạn thứ hai. Tôi thấy rằng việc gọi initOwner()
trên một Giai đoạn sẽ loại bỏ hành vi này.
Bây giờ vấn đề của tôi là sau: Tôi có nhiều "cửa sổ bật lên" có chủ sở hữu chung (giai đoạn chính). Di chuột qua các điều khiển trên giai đoạn chính không gây ra bất kỳ hành vi không mong muốn nào sau giải pháp initOwner()
. Tuy nhiên, nếu bạn di chuột qua các điều khiển trong cửa sổ bật lên trong khi một cửa sổ bật lên khác đang được lấy nét, cửa sổ bật lên được di chuột sẽ lấy nét.
Có cách nào tôi có thể khắc phục lỗi này không chỉ cho giai đoạn chính mà còn cả các cửa sổ bật lên?
CẬP NHẬT: tắt cách giải quyết của tôi có tác dụng phụ không mong muốn. Javadocs cho trạng thái Giai đoạn sau:
Giai đoạn sẽ luôn ở trên cùng cửa sổ chính.
Vì vậy, bổ sung, điều gì sẽ là giải pháp thay thế khiến cửa sổ bật lên không "luôn ở trên cùng" và có thể thu nhỏ tối đa?
Cảm ơn bạn đây là một giải pháp thực sự tuyệt vời hoạt động tốt với một số lượng lớn các chú giải công cụ! – Selim