Что я хочу сделать, так это создать ссылку электронной почты на кнопке, чтобы при нажатии пользователем кнопки она запускает почтовый клиент по умолчанию, а мой адрес электронной почты является адресом назначения
Я пробовал экспериментировать с этим, но не повезло (я понятия не имею):
private void jButton50ActionPerformed(java.awt.event.ActionEvent evt) {
URL url = new URL('[email protected]');
}
Но, конечно, это не URL!
Обновление: я пробовал это, и я получаю ошибки всякий раз, когда я пытаюсь использовать mail(). Нужно ли мне что-то импортировать?
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
String mailTo = jButton2.getText();
URI uriMailTo = null;
try
{
if(mailTo.length() > 0)
{
uriMailTo = new URI("mailto", mailTo, null);
desktop.mail(uriMailTo);
}
else
{
desktop.mail();
}
}
catch(IOException e)
{
e.printStackTrace();
}
catch(URISyntaxException use)
{
use.printStackTrace();
}
}
Взгляните на интеграцию с классом рабочего стола
Это пример, взятый непосредственно из вышеупомянутого связанного учебника...
private void onLaunchMail(ActionEvent evt) {
String mailTo = txtMailTo.getText();
URI uriMailTo = null;
try {
if (mailTo.length() > 0) {
uriMailTo = new URI("mailto", mailTo, null);
desktop.mail(uriMailTo);
} else {
desktop.mail();
}
} catch(IOException ioe) {
ioe.printStackTrace();
} catch(URISyntaxException use) {
use.printStackTrace();
}
}
Вы также должны взглянуть на " Desktop#mail(URI)
, не используя нужный формат URI
Mailto: URI может указывать поля сообщений, включая "to", "cc", "subject", "body" и т.д. См . Схему адреса электронной почты (RFC 2368) для деталей спецификации mailto: URI.
Обновлено с помощью рабочего примера...
import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class TestEmail {
public static void main(String[] args) {
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.MAIL)) {
String mailTo = "[email protected]";
URI uriMailTo = null;
try {
if (mailTo.length() > 0) {
System.out.println("Mail to " + mailTo);
uriMailTo = new URI("mailto", mailTo, "This is a message");
desktop.mail(uriMailTo);
} else {
System.out.println("Mail");
desktop.mail();
}
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (URISyntaxException use) {
use.printStackTrace();
}
}
}
}
}