1

アプリケーションの「About」ダイアログには、次のように html タグを使用して定義した JLabel があります。

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れます。subjectHi!

どうやってするか?

4

3 に答える 3

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 を解析しようとしないことをお勧めします。

于 2012-09-16T19:04:10.983 に答える
1

残念ながら、JLabel内のHTMLリンクはデフォルトでは「クリック可能」ではありません。このトピックを参照してください:JLabelにハイパーリンクを追加する方法。このトピックについて知っておく必要のあるすべてのものが含まれています。

于 2012-09-16T18:51:58.023 に答える
1

または、追加のライブラリを使用してもかまわない場合はJXHyperLink、SwingX プロジェクトのを使用することを検討できます。

于 2012-09-16T19:30:26.647 に答える