2012-10-27 48 views
4

我有一个主要阶段,并希望创建多个附加阶段(Windows)。这些将会像Photoshop中的调色板一样控制主舞台,但我希望具有标题栏,调整大小和在多个显示器上的任意位置拖动这些功能(Popup类没有此功能)。JavaFX 2:防止其他阶段从主要阶段窃取焦点

但是我不希望这些东西总是从主窗口偷取焦点,实际上他们不应该偷窥焦点,所以最好让它们都在前台同时进行。无论如何要做到这一点?我在主舞台上尝试了requestFocus(),但它似乎不工作。我现在唯一能想到的是实现一个自定义控件来显示标题栏并创建一个Popup,但它听起来像一个痛苦,谢谢

+1

看看[VFXWindows(http://mihosoft.eu/?p=392) – amru

+0

看起来正是我要找的, 谢谢! – JavaMonkey22

回答

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 
    } 
}); 
+0

Maby有没有办法将注意力放在新窗口上?我有一个通知窗口,它总是从任何程序中窃取焦点,当演出时,它有点烦人...... –