JavaFX 2:防止其他阶段从主阶段窃取焦点

时间:2012-10-27 07:16:44

标签: window focus javafx-2 stage

我有一个主舞台,并希望创建多个额外的阶段(Windows)。这些就像Photoshop中用于控制主舞台的调色板,但我想要具有标题栏,调整大小以及能够在多个监视器上将它们拖动到任何位置的功能(Popup类没有这个)。

但是我不希望这些从主窗口一直偷走焦点,事实上它们永远不应该偷走焦点,最好将它们全部放在前台同时进行。反正有没有这样做?我在主舞台上尝试过requestFocus(),但它似乎没有用。我现在唯一能想到的就是实现一个自定义控件来显示一个标题栏并创建一个Popup,但这听起来很痛苦,谢谢

1 个答案:

答案 0 :(得分: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
  }
});