【问题标题】:Unable to close javafx application without closing the whole program在不关闭整个程序的情况下无法关闭 javafx 应用程序
【发布时间】:2017-04-28 23:09:16
【问题描述】:

我正在开发的应用程序有问题:基本上我有一个 javafx 应用程序“MainApp”,它显示 youtube 视频列表(带有表格视图),双击一行调用 play() 方法LecteurVideo 类的(代码如下)。这将启动一个辅助应用程序(在新窗口中),其中将使用 web 视图显示匹配的视频。

我的问题是当我关闭辅助应用程序(或辅助窗口)时,窗口关闭但音频仍在运行。我发现的唯一解决方法是在关闭视频时也关闭 MainApp。但这不是我想做的。

package proj;

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import proj.view.ShowResultsController;
import javafx.application.Platform;

public class LecteurVideo extends Application {    

    private String url; 

    public LecteurVideo(String url){
        this.url = url;

    }

    public void play(){
        launch();
    }

  public void start(Stage stage) throws Exception {

    WebView webview = new WebView();
    webview.getEngine().load(url);
    webview.setPrefSize(640, 390);
    stage.setScene(new Scene(webview));
    stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
        @Override
        public void handle(WindowEvent event) {
            Platform.exit();
        }
        });
    stage.show();

  }

}

.setOnCloseRequest() 是我在为我最初的问题寻找解决方案时在网上找到的一个修复程序。

总结一下:我想要的是能够在不关闭整个应用程序但仍然关闭音频的情况下关闭视频播放器窗口。

感谢您的宝贵时间。

【问题讨论】:

  • 那行得通,我觉得很愚蠢。我发誓我花了一个小时在网上寻找答案,但一次都没看到。不过非常感谢

标签: java javafx webview


【解决方案1】:

要停止视频,您可能需要从网络视图中卸载内容。您可以在窗口的关闭处理程序中执行此操作

webView.getEngine().load(null);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2014-07-30
    • 2016-07-20
    • 2015-02-15
    相关资源
    最近更新 更多