gpt4 book ai didi

Javafx FXML 布局拖放

转载 作者:行者123 更新时间:2023-11-30 02:57:25 24 4
gpt4 key购买 nike

我喜欢用 Javafx 和 FXML 布局编写九人莫里斯游戏,我将使用场景生成器作为图形部分。

有人可以给我写一个关于拖放的小例子吗?因为这是九人莫里斯游戏,所以我只喜欢拖动并有一些可以放下棋子的点。

最佳答案

简单的拖放示例

public class JavaFX_DragAndDrop extends Application
{

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

@Override
public void start(Stage primaryStage)
{
primaryStage.setTitle("Drag & Drop Example");
Group root = new Group();
Scene scene = new Scene(root, 350, 300);

HBox hBox = new HBox();

setupGestureTarget(scene, hBox);

root.getChildren().add(hBox);
primaryStage.setScene(scene);
primaryStage.show();
primaryStage.show();
}

void setupGestureTarget(final Scene target, final HBox targetBox)
{

target.setOnDragOver(new EventHandler<DragEvent>()
{
@Override
public void handle(DragEvent event)
{
/* data is dragged over the target */
System.out.println("onDragOver");

Dragboard db = event.getDragboard();
if (db.hasFiles())
{
event.acceptTransferModes(TransferMode.COPY);
}

event.consume();
}
});

target.setOnDragDropped(new EventHandler<DragEvent>()
{
@Override
public void handle(DragEvent event)
{
/* data dropped */
System.out.println("onDragDropped");

Dragboard db = event.getDragboard();

if (db.hasFiles())
{

for (File file : db.getFiles())
{
String absolutePath = file.getAbsolutePath();
Image dbimage = new Image(absolutePath);
ImageView dbImageView = new ImageView();
dbImageView.setImage(dbimage);
targetBox.getChildren().add(dbImageView);
}

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

event.consume();
}
});

}
}

关于Javafx FXML 布局拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36857370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com