プロジェクト

全般

プロフィール

機能 #93

未完了

JavaFXで右クリックしたらクリップボードに所定のテキストをコピーする

高橋 徹 さんが約5年前に追加. ほぼ5年前に更新.

ステータス:
解決
優先度:
通常
担当者:
カテゴリ:
-
対象バージョン:
-
開始日:
2019/06/13
期日:
進捗率:

80%

予定工数:

説明

JavaFXで画面を右クリックしたら、その時点で表示されているコンテンツに基づく所定の文字列を生成し、
それをOS(デスクトップ)の標準クリップボードへコピーする。

高橋 徹 さんが約5年前に更新

  • ステータス新規 から 進行中 に変更
  • 担当者高橋 徹 にセット
  • 進捗率0 から 50 に変更

JavaFXには、OSのクリップボードを表現するjavafx.scene.input.Clipboardクラスがある。

OpenJFX 12 のJavadoc にあるClipboard

     final Clipboard clipboard = Clipboard.getSystemClipboard();
     final ClipboardContent content = new ClipboardContent();
     content.putString("Some text");
     clipboard.setContent(content);
  • getSystemClipboard() でOSのクリップボードインスタンスを取得
  • ClipboardContent のインスタンスを生成し、テキストを挿入
  • setContent(content) でクリップボードにデータをセット

高橋 徹 さんが約5年前に更新

右クリックの認識

Sceneにマウスクリックのハンドラーを登録し、右クリックが押されているかを次のコードでチェックしたところ
認識されなかった。

scene.setOnMouseClicked(e -> if (e.isSecondaryButtonDown()) { copyClipboard() });

MouseClickedのイベントは、まずマウスボタンが押され、次に離されてから発生するので、発生時にはボタンは押されていないためと推定。そこで、次のようにコードを修正。

scene.setOnMouseClicked(e -> if (e.getButton() == MouseButton.SECONDARY) { copyClipboard() });

高橋 徹 さんがほぼ5年前に更新

  • ステータス進行中 から 解決 に変更
  • 進捗率50 から 80 に変更

他の形式にエクスポート: Atom PDF