JavaFX 2: 防止其他舞台从主舞台窃取焦点

4
我有一个主舞台,想创建多个额外的舞台(窗口)。这些窗口就像Photoshop中的调色板,可以控制主舞台,但我希望它们具有标题栏、可调整大小的功能,并且能够将它们拖动到多个监视器上的任何位置(Popup类没有此功能)。
然而,我不想让这些窗口一直抢占主窗口的焦点,事实上它们永远都不应该抢占焦点,最好让它们同时处于前景状态。有什么办法可以做到这一点吗?我尝试在主舞台上使用requestFocus(),但它似乎甚至都没有起作用。现在我所能想到的唯一办法是实现一个自定义控件来显示标题栏并创建Popup,但这听起来很麻烦,谢谢。

1
请查看[VFXWindows](http://mihosoft.eu/?p=392) - amru
1个回答

0

是的,它应该可以与 .requestFocus() 一起工作。
但出于某些原因,你必须这样做两次:

primaryStage.requestFocus();  //put focus from dialog to main window

Platform.runLater(new Runnable() {
  @Override
  public void run() {

    //focus again??? only then it works :-(
    primaryStage.requestFocus();  //put focus from dialog to main window
  }
});

也许有一种方法可以永远不要设置新窗口的焦点?我有一个通知窗口,它总是在显示时从任何程序中夺取焦点,这有点令人烦恼... - Igor Bloom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接