【问题标题】:Launching a browser from a desktop application [duplicate]从桌面应用程序启动浏览器 [重复]
【发布时间】:2012-06-22 23:02:11
【问题描述】:

可能重复:
Getting java gui to open a webpage in web browser - 这完全不是重复的。我希望能够引用浏览器中的选项卡,而不仅仅是启动浏览器。

我有一个桌面应用程序,该应用程序有一个按钮,该按钮带有一个打开具有特定 URL 的新浏览器的操作。每次我按下按钮时,它都会打开一个新窗口/选项卡。我希望它刷新窗口/选项卡,如果它已经打开并且 URL 相同,而不是总是打开一个新的。启动初始窗口的代码非常简单:

final String errMsg = "Error attempting to launch web browser";
String osName = System.getProperty("os.name"); 
try{ 
    if (osName.startsWith("Windows")) 
        Runtime.getRuntime().exec( "rundll32 url.dll,FileProtocolHandler " + "www.stackoverflow.com");
}catch(Exception e){
    JOptionPane.showMessageDialog(null, errMsg + "\n" + e.toString());
}

我在想也许我可以命名窗口/选项卡,这样当代码启动时,它会尝试查找名称并在存在时刷新它。但我很难找到这样的解决方案。另外,我目前的做法是否可以接受?

【问题讨论】:

  • @plasma147 - 我应该提一下我使用的是 Java 5,所以这个解决方案对我不起作用。
  • @plasma147 这不是一个精确的重复,OP 希望每次从 Java GUI 应用程序启动时刷新相同的浏览器选项卡。
  • @plasma147 顺便说一句,我也喜欢缓步动物,任何能在太空中生存的动物都会得到我的投票。 :D

标签: java windows browser java-5


【解决方案1】:

将网络服务器组件添加到您的应用程序。然后启动浏览器,指向您的网络服务器生成的页面,并在单击按钮时使用 AJAX 刷新浏览器内容。

【讨论】:

    【解决方案2】:

    你可以以此为基础:

    Getting java gui to open a webpage in web browser

    以非操作系统特定的方式打开浏览器。

    它可能无法让您对浏览器进行那种程度的控制。

    您是否考虑过使用 JeditorPane 或者如果您需要额外的 javascript 支持,包括 javafx webview(基于 webkit): Integrating JavaFX 2.0 WebView into a Swing Java SE 6 Application

    【讨论】:

    • 啊,我猜 javafx 集成不适用于 java s.e 6。JEditorPane 可以工作 - 你可以下载 html 并根据需要呈现它。虽然渲染器不是很好
    • 我不确定自己渲染它是否符合要求。我希望我们已经是 Java 6,但我们距离迁移到该版本还有一年左右的时间:/
    猜你喜欢
    • 2016-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 2015-02-21
    • 2017-04-05
    相关资源
    最近更新 更多