如何从帮助菜单按钮打开html文件

时间:2015-10-03 14:50:19

标签: java html eclipse swing

我尝试用我的新应用程序打开一个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,即它没有&#39 ; t打开文件,即没有任何反应,没有窗户,什么都没有? 我打开它的唯一方法是手动,通过在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();
                }
            }
        });

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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