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
可能更容易与 ActionListener
。 answer 中详细讨论了这两种方法。 Marko Topolnik 已经在他的评论中提出了建议。唯一的区别是他们想要打开一个 URL,而您想要打开一个文件(因此答案使用 browse
方法而不是 open
类的 Desktop
方法)。
关于java - 如何将 xml 变成超链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10197808/