【问题标题】:How to open a html file from a help menu button如何从帮助菜单按钮打开 html 文件
【发布时间】:2023-03-29 10:32:01
【问题描述】:

我尝试用我的新应用程序打开一个 javadoc html 文件,但是我无法打开 javadoc 文件,我有一个类名 OpenUri,调用它时应该打开 javadoc:

package gui;

import java.awt.Desktop;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;

import javax.swing.JFrame;

public class OpenUri extends JFrame {

public static void openWebpage(URI uri) {
    Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
    if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
        try {
            desktop.browse(uri);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

public static void openWebpage(URL url) {
    try {
        openWebpage(url.toURI());
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
}
}

然后我从另一个名为 Menu 的类中调用并使用这个类,其中帮助按钮有一个动作侦听器等。但是当我运行代码并按下帮助按钮时,没有 javadoc 出现,即它没有打开文档,即没有任何反应,没有窗口,什么都没有? 我可以手动打开它的唯一方法是在 Eclipse 中单击它,这是我正在使用的 Menu 类中的特定代码:

//Help
        JMenu helpMenu = new JMenu("Help");
        helpMenu.setMnemonic(KeyEvent.VK_H);
        helpMenu.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                try {
                    URI uri = new URI("file:///C:/Users/howhowhows/workspace/OPTICS_DROP_MENU/doc/index.html");
                    OpenUri.openWebpage(uri);
                } catch (URISyntaxException e) {

                    e.printStackTrace();
                }
            }
        });

如果有人对我做错了什么有任何想法,即我需要添加/更改什么,将不胜感激。

【问题讨论】:

  • 你在编辑方面打败了我我不会买这张唱片。
  • 不是说它解决了什么问题,而是为什么OpenUri extends JFrame
  • @mplungjan 被划伤了吗?
  • 我看到很多编辑都被撤消了。也许尽量不要并行编辑?
  • @Pshemo 我正在编写的应用程序是一个 GUI,所以我认为“OpenUri 扩展 JFrame”将是实现该类的正确方法,有什么想法吗?

标签: java html eclipse swing


【解决方案1】:

您是否下载并尝试了 How to Integrate With the Desktop Class 上的 Swing 教程中的演示代码。

当我使用该代码并将您的 URI 粘贴到文本字段中时,没有显示任何窗口,并且按预期收到“系统找不到文件”消息。

当我输入一个我知道存在的简单 URI:“c:/java/a.html”时,浏览器会按预期打开。

所以我建议你从已知的工作代码开始,看看你的 URI 是否有效。如果它确实有效,那么问题出在您的代码上,因此将工作代码与您的代码进行比较,看看有什么区别。如果它不起作用,那么问题是 URI。

如果您仍然有问题,请发布正确的SSCCE 来说明问题。鉴于您的 OPenURI 类无缘无故地扩展了 JFrame,我们不知道您可能在代码中执行了哪些其他奇怪的事情。

【讨论】:

  • 感谢您的帮助,但能否请您发布您正在使用的打开“c:/java/a.html”页面的代码,以便我可以针对我的页面对其进行测试。干杯。 c",)
  • @benlopas,我给了你代码。它在教程中。您需要从教程中下载演示代码。
  • 感谢@camickr,我应该能够将其调整为我的 GUI,如果我真的卡住了,我会添加一个 SSCCE,干杯,+1。 c",)
猜你喜欢
  • 2011-03-14
  • 1970-01-01
  • 2017-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
相关资源
最近更新 更多