読者です 読者をやめる 読者になる 読者になる

マイペースなプログラミング日記

x86エミュレータやFPGA、WebGLにお熱なd-kamiがマイペースに書くブログ

ファイルのドラッグ&ドロップテスト

Java JavaFX

JavaFXでファイルをドラッグ&ドロップで受け取るためのテストプログラム

import javafx.stage.Stage;
import javafx.application.Application;

import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.input.Dragboard;
import javafx.scene.input.TransferMode;

public class Test extends Application{
    public void start(Stage stage){
        Label label = new Label("DROP");
        
        label.setOnDragOver(event -> { 
            if(event.getDragboard().hasFiles()){
                event.acceptTransferModes(TransferMode.COPY);
            }
        });
        
        label.setOnDragDropped(event -> {
            Dragboard board = event.getDragboard();
            
            if(board.hasFiles()){
                board.getFiles().stream().forEach(file -> {
                    System.out.println(file.getName());
                });
                
                event.setDropCompleted(true);
            }else{
                event.setDropCompleted(false);
            }
        });
        
        stage.setScene(new Scene(label));
        stage.setWidth(300);
        stage.setHeight(200);
        stage.show();
    }
    
    public static void main(String... args) {
        launch(args);
    }
}

参考
m-miya.blog.jp
docs.oracle.com