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

时间:2012-04-17 19:28:04

标签: java swing hyperlink

  

可能重复:
  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”上没有时间输出。我得到了,但正在发生的是所有链接在点击时显示相同的文件。帮助

1 个答案:

答案 0 :(得分:2)

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

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

根据您希望向用户展示此内容的方式,您可以选择与监听器一起使用JLabel代码,但使用JButton ActionListener可能更容易。这两种方法都在他的评论中已经提到的answer Marko Topolnik中详细讨论过。唯一的区别是他们想要打开一个URL,而你想打开一个文件(这样答案使用browse方法而不是open类的Desktop方法。