java - 从默认浏览器打开 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 的任何给定元素后,应用程序会冻结并在几秒钟后崩溃。为什么会这样?无论操作系统如何,有没有办法打开浏览器?
提前致谢!:)
解决方案
推荐阅读
- reactjs - React 认为我的函数组件是一个对象(而不是函数)
- java - 无法使用 selenium BDD 框架运行登录测试
- reactjs - 如何避免在useEffect中didmount时调用清理函数?
- node.js - Firebase无密码登录电子邮件链接过期时间太短
- spring - 如何使用 Spring WebServiceTemplate 正确配置编组
- c - 如何在现代 linux 下编译 oneko 程序?
- android - Unity facebook sdk'没有找到类“com.facebook.FacebookContentProvider”'对此有任何更多建议吗?
- wpf - 从 WPF TextBox 中移除焦点会导致性能下降
- c - HTTP响应问题
- c# - c# 中的 powershell 交换命令 - 运行空间限制