Lio*_*ion 5 java swing hyperlink
我为这个长期问题道歉.
前几天我正在浏览一个论坛,我看到了一些链接到youtube和其他网站的文本.我必须始终突出显示,然后复制并粘贴或右键单击谷歌浏览器中的"转到".
由于我一直在玩Java,我想到制作自己的小程序,它会给出一个带有地址的文本的链接.例如,如果我说"嘿,看看这个视频我前几天看到了'www.youtube.com'"我希望youtube部分可以点击.
任何人都可以告诉我,如果这样的事情是可能的,如果是的话,我必须使用哪些库,最后,如何在java中找到所有导入和库的列表?
谢谢.
Dav*_*amp 19
使用HTML JEditorPane并添加HyperLinkListener以检测点击URL.
使用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);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)