当前位置: 首页 > 知识库问答 >
问题:

Javafx FXML布局拖放

巫马望
2023-03-14

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

谁能给我写一个关于拖放的小例子吗?因为这是一场九人莫里斯的比赛,我只喜欢拖拽,并有一些我可以扔下碎片的点。

共有1个答案

侯向文
2023-03-14
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();
            }
        });

    }
}
 类似资料:
  • 本文向大家介绍PyQt-布局管理-1(使用QtDesigner拖放),包括了PyQt-布局管理-1(使用QtDesigner拖放)的使用技巧和注意事项,需要的朋友参考一下 版面 这意味着用于布置视觉元素的工具。换句话说,这是您工作的总体规划或蓝图。Qt设计器提供了多种布局: 调整大小:您可以在此布局中自由调整元素或小部件。在大多数情况下,这是您首次在小部件区域中插入布局时的默认布局。 盒子布局 水

  • Tabris.js使用原生平台的能力来对UI界面进行布局。由于显示密度在移动设备之间差异很大,因此Tabris.js中的像素始终用设备独立像素表示。 布局数据 全部控件都支持layoutData属性,该属性定义了控件的排列方式。layoutData的值必须是下列属性组成的一个对象: left right top bottom centerX centerY baseline width heigh

  • 准则 单位和度量 度量与边框 结构 自适应 UI

  • 布局 学习布局前须知道 CSS 中的定位机制。 标准文档流(Normal Flow) 浮动(Float) 绝对定位(Absolute Positioning) 标准文档流,从上到下,从左到右的输出文档内容。它由块级(block)元素和行级元素组成,且它们都是盒子模型。 下面为 Firefox 布局可视化 Gecko Reflow Visualisation,布局是指浏览器将元素以正确的大小摆放在正

  • 页面整体布局是一个产品最外层的框架结构,往往会包含导航、侧边栏、面包屑以及内容等。想要了解一个后台项目,先要了解它的基础布局。 Layout 对应代码 @/layout @ 是 webpack 的 alias 不懂得请自行研究 vue-element-admin 中大部分页面都是基于这个 layout 的,除了个别页面如:login , 404, 401 等页面没有使用该layout。如果你想在一

  • 布局模式,有时简称为布局,是一种基于盒子与其兄弟和祖辈盒子的交互方式来确定盒子的位置和大小的算法。在 LCUI 中参与布局计算的数据包括 display 属性、定位属性、几何属性、盒模型、尺寸规则、布局规则等,这些数据的用途大致如下: 在布局开始前,组件的 display 属性、定位属性和几何属性会被用于计算盒模型和尺寸规则。 在布局开始时,组件的 display 属性、定位属性和尺寸规则用于选择