【发布时间】:2019-09-26 15:56:57
【问题描述】:
我有这个界面:
@Override
public void start(Stage primaryStage){
Text fileText = new Text("File:");
TextField fileField = new TextField();
fileField.setDisable(true);
fileField.setMinWidth(250);
fileField.setOnDragDropped(e -> {
Dragboard db = e.getDragboard();
boolean success = false;
if (db.hasFiles()){
fileField.setText(db.getFiles().toString());
success = true;
}
e.setDropCompleted(success);
e.consume();
});
Button clearButton = new Button("Clear");
clearButton.setOnMouseClicked(e -> fileField.setText(""));
HBox hboxFile = new HBox();
hboxFile.setAlignment(Pos.CENTER_LEFT);
hboxFile.getChildren().addAll(fileText, fileField, clearButton);
HBox.setMargin(fileText, new Insets(10));
HBox.setMargin(fileField, new Insets(10, 10, 10, 0));
HBox.setMargin(clearButton, new Insets(10, 10, 10, 0));
primaryStage.setScene(new Scene(hboxFile));
primaryStage.sizeToScene();
primaryStage.centerOnScreen();
primaryStage.show();
}
我想为TextField 激活拖放功能,当我在输入端放置文件时,会出现文件位置。
我的问题是我不能在界面中放置任何东西。
当我将文件拖过输入时出现禁止标志:
当我尝试拖动文件时,整个界面都会出现这个标志。
【问题讨论】:
-
您需要的不仅仅是
setOnDragDropped()。我建议搜索有关拖放的基本教程(或 SO 上的任何其他问题)。