java - 如何将 xml 变成超链接?

标签 java swing hyperlink

Possible Duplicate:
How to add hyperlink in JLabel

在我的程序中,我正在使用 Lucene 搜索索引并检索文件。我已经为从 Lucene 搜索中检索到的文档创建了 XML 文件。现在,我想将这些 XML 文件作为超链接并作为搜索结果显示给用户。也就是说,我希望当用户单击此超链接时打开 XML 文件。任何帮助表示赞赏!?

for(int i=0;i<file_count;i++)
 {
  file=str+index[i]+".xml";   

JLabel label = new JLabel(file,JLabel.CENTER );

label.setOpaque(true);
label.setBackground(Color.RED);
panel.add(label) ;

label.addMouseListener(new java.awt.event.MouseAdapter() {
            @Override
public void mouseClicked(java.awt.event.MouseEvent evt) {
if(evt.getClickCount() > 0)
{

Runtime r= Runtime.getRuntime();
   try {
       System.out.println("testing : Inside mouseclicked");
       Process p = r.exec("cmd.exe /c start "+file);
       System.out.println("opened the file");
   } catch (IOException ex) {
System.out.println(ex.getMessage());
System.out.println();
}
}
}
});
 }

这是我编写的代码。在此,我应该在屏幕上获得“file_count”输出次数。我明白了,但发生的情况是所有链接在单击时都显示相同的文件。帮忙?

最佳答案

如果我正确理解您的问题,您希望允许用户打开文件。 Desktop 类(从 JDK1.6 开始提供)允许这样做

File fileToOpen = ...;
Desktop desktop = Desktop.getDesktop();
desktop.open( fileToOpen )

根据您想要向用户呈现的方式,您可以选择 JLabel使用监听器编写代码,但使用 JButton 可能更容易与 ActionListeneranswer 中详细讨论了这两种方法。 Marko Topolnik 已经在他的评论中提出了建议。唯一的区别是他们想要打开一个 URL,而您想要打开一个文件(因此答案使用 browse 方法而不是 open 类的 Desktop 方法)。

关于java - 如何将 xml 变成超链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10197808/

相关文章:

java - 如何从 Java 访问 Gradle 额外属性?

Java 正则表达式 : Replace part of source string

php - 使用 cURL 获取网站中的所有链接(不仅是页面)

java - 优化Java中具有大量组件的JFrame的绘制

css - Mozilla 系统默认样式 - *|* :-moz-any-link

asp.net - 奇怪的问题 - 无法将 javascript 分配给 linkbutton

javascript - JQuery 语法解释

java - 使用指向除下一个节点之外的随机节点的指针复制 LinkedList

java - 使用 GBC/GBL 在 JPanel 上定位 JButton

java - 从文本字段获取整数值