在javafx中显示工具提示会将其舞台置于前台
我正在尝试解决jdk中的这个错误:http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8088624
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();
}
}
如果将主舞台上的按钮悬停在首位,它将出现在第二阶段的前面。我发现调用舞台将消除这种行为。initOwner()
现在我的问题是:我有多个“弹出窗口”,它们有一个共同的所有者(主要阶段)。将鼠标悬停在主阶段的控件上不会在解决方法后导致任何意外行为。但是,如果将鼠标悬停在弹出窗口中的控件上,而另一个弹出窗口处于焦点中,则悬停的弹出窗口将窃取焦点。initOwner()
有没有办法解决这个错误,不仅在主要阶段,而且在弹出窗口?
更新:事实证明我的解决方法有不希望的副作用。Javadocs for Stage state follow:
舞台将始终位于其父窗口的顶部。
那么另外,有什么解决方法可以使弹出窗口“总是在顶部”并且可最小化?