にその舞台をもたらし、私は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();
}
}
主要ステージ上のボタンが推移した場合、それは目の前に来ます第2段階ステージ上でinitOwner()
と呼ぶと、この動作がなくなることがわかりました。
私の問題は次のとおりです。共通の所有者(プライマリステージ)を持つ複数の「ポップアップ」があります。プライマリステージ上のコントロールをホバリングしても、initOwner()
回避策の後に予期しない動作が発生することはありません。しかし、別のポップアップがフォーカスされているときにポップアップのコントロールにマウスを合わせると、ポップアップされたポップアップがフォーカスを奪います。
プライマリステージだけでなくポップアップでもこのバグを回避する方法はありますか?
UPDATE:私の回避策には、望ましくない副作用があることが判明しました。次のステージ状態のJavadocs:
ステージは常に親ウィンドウの上に表示されます。
さらに、ポップアップを「常に上に」ないし最小限に抑えるための回避策はありますか?
が、これはツールチップの数が多いとうまく動作します本当に素晴らしいソリューションですありがとう...私にとっては魅力のように働いています! – Selim