JavaFX警报不显示?

JavaFX警报不显示?,javafx,alert,Javafx,Alert,我没有太多的信息,但也许有人也面临着同样的问题。我为一些朋友编写了一个应用程序,其中包括一些提醒对话。问题是,警报没有显示在测试过的任何一台电脑上(但在我的电脑上显示了!)。我有Windows10和Java1.8.0_51,测试系统有Windows7和Java1.8.0_60 我用css设计了它。我就是这样实现的(报警只是一个音频剪辑): 我在课堂时钟中使用时间线。。我想这就是问题所在。我可以不使用时间线构建一个工作时钟吗?它看起来像在Java 1.8.0\u 60中一样,在动画期间不能调用类A

我没有太多的信息,但也许有人也面临着同样的问题。我为一些朋友编写了一个应用程序,其中包括一些提醒对话。问题是,警报没有显示在测试过的任何一台电脑上(但在我的电脑上显示了!)。我有Windows10和Java1.8.0_51,测试系统有Windows7和Java1.8.0_60

我用css设计了它。我就是这样实现的(报警只是一个音频剪辑):


我在课堂时钟中使用时间线。。我想这就是问题所在。我可以不使用时间线构建一个工作时钟吗?

它看起来像在Java 1.8.0\u 60中一样,在动画期间不能调用类Alert的showAndWait()方法(基本上这就是异常所说的)。问题是,我使用时间线来检查系统时间,并在达到某个时间时显示警报。为了解决这个问题,我改变了主意

Optional<ButtonType> result = alert.showAndWait();
            if (result.get() == ButtonType.OK) {
                alarm.stop();
                try {
                    func.call();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
因此,它不是等待一些输入,而是简单地侦听showing属性中的更改。但是,如果您使用带有更多按钮的其他警报,则不知道如何修复此问题

Exception in thread "JavaFX Application Thread" java.lang.IllegalStateException: showAndWait is not allowed during animation or layout processing
    at javafx.scene.control.Dialog.showAndWait(Unknown Source)
    at utils.Alarm.play(Alarm.java:38)
    at note.NoteController.update(Controller.java:76)
    at java.util.Observable.notifyObservers(Unknown Source)
    at java.util.Observable.notifyObservers(Unknown Source)
    at note.NoteModel.update(Model.java:57)
    at java.util.Observable.notifyObservers(Unknown Source)
    at java.util.Observable.notifyObservers(Unknown Source)
    at utils.Watch.lambda$0(Clock.java:35)
    at com.sun.scenario.animation.shared.TimelineClipCore.visitKeyFrame(Unknown Source)
    at com.sun.scenario.animation.shared.TimelineClipCore.playTo(Unknown Source)
    at javafx.animation.Timeline.impl_playTo(Unknown Source)
    at javafx.animation.AnimationAccessorImpl.playTo(Unknown Source)
    at com.sun.scenario.animation.shared.InfiniteClipEnvelope.timePulse(Unknown Source)
    at javafx.animation.Animation.impl_timePulse(Unknown Source)
    at javafx.animation.Animation$1.lambda$timePulse$26(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at javafx.animation.Animation$1.timePulse(Unknown Source)
    at com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl(Unknown Source)
    at com.sun.scenario.animation.AbstractMasterTimer$MainLoop.run(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$405(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$149(Unknown Source)
Optional<ButtonType> result = alert.showAndWait();
            if (result.get() == ButtonType.OK) {
                alarm.stop();
                try {
                    func.call();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
alert.showingProperty().addListener((observable,oldValue,newValue)->{
                if (!newValue){
                    alarm.stop();
                    try {
                        func.call();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });