我为这个长期问题道歉。
前几天我正在浏览一个论坛,我看到一些链接到youtube和其他网站的文本。 我必须始终突出显示,然后复制并粘贴或右键单击谷歌浏览器中的“转到”。
因为我一直在玩Java,所以我想创建自己的小程序,它会给出一个带有地址的文本的链接。例如,如果我说“嘿,看看这个视频,我前几天看到了'www.youtube.com'”我希望youtube部分可以点击。
有人可以告诉我这样的事情是否可能,如果是的话,我必须使用哪些库,最后,我怎样才能找到java中所有导入和库的列表?
感谢。
答案 0 :(得分:17)
在JEditorPane
中使用HTML并添加HyperLinkListener
以检测点击网址。
使用Desktop API打开带有URL的默认浏览器。
类似的东西:
import java.awt.Desktop;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
public class Test {
public static void main(String[] argv) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JEditorPane jep = new JEditorPane();
jep.setContentType("text/html");//set content as html
jep.setText("Welcome to <a href='http://stackoverflow.com/'>StackOverflow</a>.");
jep.setEditable(false);//so its not editable
jep.setOpaque(false);//so we dont see whit background
jep.addHyperlinkListener(new HyperlinkListener() {
@Override
public void hyperlinkUpdate(HyperlinkEvent hle) {
if (HyperlinkEvent.EventType.ACTIVATED.equals(hle.getEventType())) {
System.out.println(hle.getURL());
Desktop desktop = Desktop.getDesktop();
try {
desktop.browse(hle.getURL().toURI());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
});
JFrame f = new JFrame("HyperlinkListener");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(jep);
f.pack();
f.setVisible(true);
}
});
}
}