我尝试用我的新应用程序打开一个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();
}
}
});
如果有人对我做错了什么有任何想法,即我需要添加/更改的内容,我们将不胜感激。
答案 0 :(得分:2)
您是否已经从How to Integrate With the Desktop Class上的Swing教程下载并尝试了演示代码。
当我使用该代码并将您的URI粘贴到文本字段中时,不会显示任何窗口,并且我按预期收到“系统无法找到文件”消息。
当我输入一个我知道存在的简单URI时:“c:/java/a.html”浏览器按预期打开。
所以我建议你从已知的工作代码开始,看看你的URI是否有效。如果它确实有效,那么问题就在于你的代码,所以将工作代码与你的代码进行比较,看看有什么区别。如果它不起作用那么问题就是URI。
如果您仍有问题,请发布展示问题的正确SSCCE。鉴于您的OPenURI类无缘无故地扩展了JFrame,我们不知道您可能在代码中做了哪些其他奇怪的事情。