你好,所以我有一个jTextPane,我在其中插入普通和带下划线的文本。我想要做的是当我单击jTextPane上的超链接以获取超链接字符串值。你知道怎么做吗?谢谢! 我需要这个聊天。当有人上传文件时,它会在textpane中插入以下内容:用户上传的文件 file.txt (作为超链接)。我只需要能够在点击它时抓取超链接的String值。
答案 0 :(得分:0)
以下是一个非常快速的例子:
public class Test {
private JFrame frame;
public Test() {
// make frame
frame = new JFrame("JTextPane test");
frame.setSize(200,100);
// create text pane
JTextPane textPane = new JTextPane();
// set up for HTML
textPane.setEditorKit(JEditorPane.createEditorKitForContentType("text/html"));
// url of file
String url = "file://path/to/somefile.txt";
// disable editing
textPane.setEditable(false);
// put a hyperlink in the pane
textPane.setText("<a href='" + url + "'>somefile.txt</a>");
// add link listener
textPane.addHyperlinkListener(new HyperlinkListener() {
@Override
public void hyperlinkUpdate(HyperlinkEvent e) {
if ( e.getEventType() == HyperlinkEvent.EventType.ACTIVATED ) {
// if clicked, show the URL
JOptionPane.showMessageDialog(null, e.getURL(), "Link clicked!", JOptionPane.INFORMATION_MESSAGE);
}
}
});
// add content
frame.getContentPane().add(textPane);
frame.setVisible(true);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
// run
public static void main(String[] args) {
Test t = new Test();
}
}
以下是输出的截图: