[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] PSGぽい音を出す。(2014.09.17)
- NetBeansで日本語を入力すると落ちる - Така блог(2014.09.13)
- [Java8] JavaFX、マルチタッチ(2014.08.16)
- [Java8] JavaFX、ファイルのドラッグ&ドロップ(2014.08.06)
- [Java8] JavaFX、とりあえずリストビュー(2014.08.05)
この記事へのコメントは終了しました。
« [Java8] JavaFX、とりあえずリストビュー | トップページ | タッチ操作向けサイト構築のガイドライン - IEBlog 日本語 - Site Home - MSDN Blogs »
コメント