2024年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
無料ブログはココログ

« [Java8] JavaFX、とりあえずリストビュー | トップページ | タッチ操作向けサイト構築のガイドライン - IEBlog 日本語 - Site Home - MSDN Blogs »

2014.08.06

[Java8] JavaFX、ファイルのドラッグ&ドロップ

Controllerクラスに次のコードを追加してScene BuilderでAnchorPane(他のコントロールでもいい)の"On Drag Over"と"On  Drag Dropped"にそれぞれhandleDragOverとhandleDroppedを 割り当てる とFinderや エクスプローラーからファイルをドラッグアンドドロップで受け取ることができるようになる。ほかにもドラッグ&ドロップ関係のイベントがあるみたいだけど、これだけでファイルはとりあえず受け取れるようだ。(ほかのイベントはまだ調べていない(^^;))

    @FXML
    private void handleDragOver(DragEvent event) {
        // ドラッグボードを取得
        Dragboard board = event.getDragboard();
        if(board.hasFiles()) {  // ドラッグされているのがファイルなら
            // コピーモードを設定(これでマウスカーソルが矢印に+のやつになる)
            event.acceptTransferModes(TransferMode.COPY);
        }
    }

    @FXML
    private void handleDropped(DragEvent event) {
        // ドラッグボードを取得
        Dragboard board = event.getDragboard();
        if(board.hasFiles()) { 
            board.getFiles().stream().forEach((f) -> {
                System.out.println(f.getPath());
            });
            // ドロップ受け入れ
            event.setDropCompleted(true);
        } else {    // ファイル以外なら
            // ドロップ受け入れ拒否
            event.setDropCompleted(false);
        }
    }

« [Java8] JavaFX、とりあえずリストビュー | トップページ | タッチ操作向けサイト構築のガイドライン - IEBlog 日本語 - Site Home - MSDN Blogs »

Javaプログラミング」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [Java8] JavaFX、ファイルのドラッグ&ドロップ:

« [Java8] JavaFX、とりあえずリストビュー | トップページ | タッチ操作向けサイト構築のガイドライン - IEBlog 日本語 - Site Home - MSDN Blogs »