Faites glisser et déposez des fichiers avec JavaFX

Contenu

Un programme qui affiche le chemin absolu d'un fichier lorsqu'il est glissé et déposé.

code

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.input.Dragboard;
import javafx.scene.input.TransferMode;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Main extends Application {
	@Override
	public void start(Stage primaryStage) {
		try {
			VBox root = new VBox();

			root.setOnDragOver(event -> {
				Dragboard board = event.getDragboard();
				if (board.hasFiles()) {
					event.acceptTransferModes(TransferMode.MOVE);
				}
			});

			root.setOnDragDropped(event -> {
				Dragboard board = event.getDragboard();
				if (board.hasFiles()) {
					board.getFiles().forEach(file -> {
						root.getChildren().add(new Label(file.getAbsolutePath()));
						System.out.println(file.getAbsolutePath());
					});

					event.setDropCompleted(true);
				} else {
					event.setDropCompleted(false);
				}
			});

			Scene scene = new Scene(root, 400, 400);
			primaryStage.setScene(scene);
			primaryStage.show();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		launch(args);
	}
}

Supplément

Vous avez besoin d'une description pour appeler ʻacceptTransferModes dans la méthode setOnDragOver` simplement en faisant glisser et en déposant le fichier. Ça ne marche pas sans ça.

Recommended Posts

Faites glisser et déposez des fichiers avec JavaFX
[Rails] Implémentation de la fonction glisser-déposer (avec effet)
Bonjour tout le monde avec Kotlin et JavaFX
[Java] Lecture et écriture de fichiers avec OpenCSV
JavaFX et HiDPI
Bonjour tout le monde avec Kotlin et JavaFX
Faites glisser et déposez des fichiers avec JavaFX
Agrandir / réduire et mouvement parallèle avec JavaFX Canvas (Revenge)
JavaFX et HiDPI
HelloFX avec JavaFX
Un simple jeu de ciseaux-papier-pierre avec JavaFX et SceneBuilder
[Review] Lecture et écriture de fichiers avec java (JDK6)
Joyeux Noël avec JavaFX !!
Connectez le port en avant avec SSH pour envoyer et recevoir des fichiers
Préparer l'environnement pour java11 et javaFx avec Ubuntu 18.4
[Java] Développement avec plusieurs fichiers en utilisant package et import
Créer un contrôleur radio Ev3 avec JavaFx et leJOS [Partie 2]
Premiers pas avec Java et création d'un éditeur Ascii Doc avec JavaFX
Créer un contrôleur radio Ev3 avec JavaFx et leJOS [Partie 1]
URLSession avec URLSession et Combine normalement
[Note] Transition de scène avec JavaFX