Javafx 2 制作窗口&x27;JavaFX2阶段的任务栏闪烁
我已经在甲骨文论坛上发布了这篇文章,但hgot没有回应,所以我在这里尝试。 有没有办法让特定舞台的窗口任务栏闪烁? 我正在构建一个IM客户端,我希望在收到新消息时任务栏闪烁。 使用Swing JFrame,我可以通过调用setVisible(true)来实现这一点;但是JavaFX2的阶段并没有以同样的方式运行。 任何帮助或指导都将不胜感激。Javafx 2 制作窗口&x27;JavaFX2阶段的任务栏闪烁,javafx-2,Javafx 2,我已经在甲骨文论坛上发布了这篇文章,但hgot没有回应,所以我在这里尝试。 有没有办法让特定舞台的窗口任务栏闪烁? 我正在构建一个IM客户端,我希望在收到新消息时任务栏闪烁。 使用Swing JFrame,我可以通过调用setVisible(true)来实现这一点;但是JavaFX2的阶段并没有以同样的方式运行。 任何帮助或指导都将不胜感激。 谢谢。我没有在所有系统上测试它,但在Win7上测试。如果运行下一个应用程序并更改焦点,它将通过调用Stage.toFront()闪烁。 公共类闪烁器扩展应
谢谢。我没有在所有系统上测试它,但在Win7上测试。如果运行下一个应用程序并更改焦点,它将通过调用
Stage.toFront()闪烁。
公共类闪烁器扩展应用程序{
@凌驾
public void start(final Stage)引发异常{
stage.setTitle(“我会眨眼”);
舞台场景(新场景(新组)(新文本(25,25,“闪烁”));
stage.show();
TimelineBuilder.create()关键帧(新的关键帧(持续时间.秒(5),新的EventHandler()){
@凌驾
公共无效句柄(ActionEvent t){
stage.toFront();
}
})).cycleCount(Timeline.unfinite).build().play();
}
公共静态void main(字符串[]args){
发射(args);
}
}
我使用了下面的方法,效果很好
if(!stage.isfocused()){
stage.toFront();
}
你好,谢尔盖,谢谢你的回复!。你知道,这对我不起作用。我正在运行Windows7 64位、JDK1.7、JavaFXJDK2.0.2 32位。这个想法是,如果舞台被图标化,toFront()会导致任务栏闪烁,而不是把它带到前面,对吗?我找到的唯一方法是,if(!isFocused()){hide();}show()代码>所以基本上如果用户正在写什么都不会发生。如果他没有,舞台就会隐藏并显示,这会导致任务栏闪烁。不过,我以后会记住你的建议。谢谢。我明白了,也许这取决于windows设置:)很高兴你找到了可行的解决方案!
public class Blinker extends Application {
@Override
public void start(final Stage stage) throws Exception {
stage.setTitle("i'll blink");
stage.setScene(new Scene(new Group(new Text(25,25,"blink-blink"))));
stage.show();
TimelineBuilder.create().keyFrames(new KeyFrame(Duration.seconds(5), new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
stage.toFront();
}
})).cycleCount(Timeline.INDEFINITE).build().play();
}
public static void main(String[] args) {
launch(args);
}
}