首页 > 解决方案 > 从默认浏览器打开 URL 会使应用程序崩溃

问题描述

我有一个用 JavaFX 14(不是 XML)编写的 GUI 应用程序。我目前有三个列表,每个列表都连接到一个不同的自定义类,其中存在一个更新 ListViews 的 ObservableList。我有三个。双击第一个 ListView 的元素(也包含 URL)后,我想在默认浏览器中打开所述 URL,无论操作系统如何(我在 Ubuntu 20.04 上编程,这个应用程序也将在 W10 上使用)。

        listSquads.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent event) {
            if(event.getClickCount()==2) {
                try {
                    if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
                        Desktop.getDesktop().browse(new URI(bot.getSquadHandler().extractURL(listSquads.getSelectionModel().getSelectedItem())));
                        }       
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (URISyntaxException e) {
                    e.printStackTrace();
                }
            }
        }
    });

这是代码。该机器人是基于 pIRCbot 库的自定义 TwitchBot 对象。getter方法中提到的squadHandler就是说的自定义类。提取 URL 是一种方法,顾名思义,它提取给定字符串作为输入的确切 URL - 这部分有效,因为它在代码的其他部分中被调用并且可以正常工作,而且我也对其进行了测试。

但是,双击 ViewList 的任何给定元素后,应用程序会冻结并在几秒钟后崩溃。为什么会这样?无论操作系统如何,有没有办法打开浏览器?

提前致谢!:)

标签: javajavafxbrowserdesktop

解决方案


推荐阅读