package net.ptnkjke.jbeditor; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.fxml.JavaFXBuilderFactory; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.input.Dragboard; import javafx.scene.input.TransferMode; import javafx.stage.Stage; import net.ptnkjke.jbeditor.gui.main.Controller; import java.io.File; import java.io.IOException; import java.util.List; public class Main extends Application { @Override public void start(Stage primaryStage) throws Exception { // Считываем параметры по умолчанию Configutation.read(); // Parent root = null; FXMLLoader fxmlLoader = null; fxmlLoader = new FXMLLoader(); fxmlLoader.setBuilderFactory(new JavaFXBuilderFactory()); Controller controller = null; try { root = fxmlLoader.load(getClass().getResource("gui/main/View.fxml").openStream()); controller = fxmlLoader.getController(); } catch (IOException e) { e.printStackTrace(); } primaryStage.setTitle("Java Byte Editor rc1"); // Вешаем dragAndDrop final Controller finalController = controller; root.setOnDragOver(event -> { event.consume(); event.acceptTransferModes(TransferMode.ANY); }); root.setOnDragDropped(event -> { Dragboard db = event.getDragboard(); if (db.hasFiles()) { List<File> files = db.getFiles(); File file = files.get(0); if (!file.isFile()) { return; } finalController.openFile(file); event.consume(); } }); primaryStage.setScene(new Scene(root, 300, 275)); primaryStage.show(); } public static void main(String[] args) { try { launch(args); } catch (Throwable t) { t.printStackTrace(); } } }