对于我的应用程序的“关于”对话框, 我有一个JLabel,我用html标签定义如下:
JLabel myEmail = new JLabel(
"<html><br><font size=2><a href=mailto:abc.pqr@xyz.com>abc.pqr@xyz.com</a>" +
"</font></html>");`
我想点击此JLabel
,默认电子邮件客户端(比如Outlook)会打开,To
字段填充为abc.pqr@xyz.com
,subject
作为预定义文本(比如,Hi!
)。
怎么做?
答案 0 :(得分:3)
以下是有关如何执行此操作的摘录:
String address = "abc.pqr@xyz.com"; // global
JLabel label = new JLabel("<html><br><font size=2><a href=#>" + address + "</a></font></html>");
label.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
label.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
try {
Desktop.getDesktop().mail(new URI("mailto:" + address + "?subject=Hello"));
} catch (URISyntaxException | IOException ex) {
// ...
}
}
});
出于演示目的,address
变量在这里是全局的,但您应该使用具体的MouseAdapter
子类来传递相关的电子邮件地址。最好避免尝试解析HTML。
答案 1 :(得分:1)
不幸的是,JLabel中的HTML链接默认情况下不是“可点击”的。请参阅此主题:How to add hyperlink in JLabel。它包含您可能需要了解的有关此主题的所有内容。
答案 2 :(得分:1)
或者,如果您不介意使用额外的库,可以考虑使用SwingX项目中的JXHyperLink