Ziehen Sie Dateien mit JavaFX per Drag & Drop

Inhalt

Ein Programm, das den absoluten Pfad einer Datei beim Ziehen und Ablegen anzeigt.

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);
	}
}

Ergänzung

Sie benötigen eine Beschreibung, um acceptTransferModes in der setOnDragOver -Methode aufzurufen, indem Sie die Datei einfach ziehen und ablegen. Ohne geht es nicht.

Recommended Posts

Ziehen Sie Dateien mit JavaFX per Drag & Drop
[Rails] Implementierung der Drag & Drop-Funktion (mit Wirkung)
Hallo Welt mit Kotlin und JavaFX
[Java] Lesen und Schreiben von Dateien mit OpenCSV
JavaFX und HiDPI
Hallo Welt mit Kotlin und JavaFX
Ziehen Sie Dateien mit JavaFX per Drag & Drop
Vergrößern / verkleinern und parallel zu JavaFX Canvas verschieben (Revenge Edition)
JavaFX und HiDPI
HelloFX mit JavaFX
Ein einfaches Stein-Papier-Scheren-Spiel mit JavaFX und SceneBuilder
[Review] Lesen und Schreiben von Dateien mit Java (JDK6)
Frohe Weihnachten mit JavaFX !!
Verbinden Sie den Port mit SSH, um Dateien zu senden und zu empfangen
Bereiten Sie die Umgebung für Java11 und JavaFx mit Ubuntu 18.4 vor
[Java] Entwicklung mit mehreren Dateien mittels Paket und Import
Erstellen eines Ev3-Funkcontrollers mit JavaFx und leJOS [Teil 2]
Erste Schritte mit Java und Erstellen eines Ascii Doc-Editors mit JavaFX
Erstellen eines Ev3-Funkcontrollers mit JavaFx und leJOS [Teil 1]
URLSession mit URLSession und Normal kombinieren
[Hinweis] Szenenübergang mit JavaFX