gpt4 book ai didi

java - 从 setOnAction 启动电子邮件客户端

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:27:04 26 4
gpt4 key购买 nike

我想在单击菜单时发送电子邮件。

        MenuItem sendmail= new MenuItem("Send E-Mail");

sendmail.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent e)
{
// Call E-mail Client
}
});

你能告诉我如何从这段代码调用安装在用户 PC 上的电子邮件客户端吗?

最佳答案

这没有记录,但似乎有效,并且是一个“纯 FX”解决方案,而不是依赖于 java.awt API 或知道外部可执行文件的位置。调用Application.getHostServices().showDocument(...) 方法并传入一个mailto: url 作为url:

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class OpenDefaultBrowser extends Application {

@Override
public void start(Stage primaryStage) {
final HBox root = new HBox(5);
final TextField textField = new TextField("help@example.com");
final Button goButton = new Button("Mail");

EventHandler<ActionEvent> goHandler = new EventHandler<ActionEvent>() {

@Override
public void handle(ActionEvent event) {
getHostServices().showDocument("mailto:"+textField.getText());
}

};

textField.setOnAction(goHandler);
goButton.setOnAction(goHandler);

root.getChildren().addAll(textField, goButton);
final Scene scene = new Scene(root, 250, 150);
primaryStage.setScene(scene);
primaryStage.show();
}

public static void main(String[] args) {
launch(args);
}
}

关于java - 从 setOnAction 启动电子邮件客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21651600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com