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

标签 java javafx javafx-2 javafx-8

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

        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/

相关文章:

java - 如何使用鼠标监听器和计时器计算点击次数

java - 如何停止定时器线程改变变量值

java - 显示可由多个其他类使用的类的文本

javafx-2 - Javafx旋转标签问题

java - CellFactory 与 CellValueFactory

java - 如何将枚举与 jpa 一起用作持久化实体的数据成员?

java - 在设置 javax.net.ssl.trustStore 之前加载的默认信任库

java - 拖放监听器和处理程序不起作用 [JavaFX]

java - 如何监听JavaFX节点中伪类的变化

reflection - 按名称检索属性