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

没有节点的GridPane co/row坐标

邢运良
2023-03-14

我试图找出鼠标在哪里,就GridPane的列和行而言。我知道鼠标的位置,所以如果我知道每个单元格的宽度和高度(我认为这不是一个简单的方法来计算),我大概可以从中算出它,但是我看到的大多数代码似乎都假设鼠标在一个节点上GridPane内部:

        Node node = (Node) event.getTarget();
        int row = GridPane.getRowIndex(node);
        int column = GridPane.getColumnIndex(node);

但是实际上我的GridPane里面没有任何东西,所以我只得到整个GridPane。现在,我想我可以为每个单元添加节点,但这似乎效率低下。(这个想法是用户将节点放在网格中,所以网格开始是空的。)

编辑:为了澄清,我主要想做的是SceneBuilder在向下放置网格窗格,然后在其上拖动组件时所做的工作。您悬停在上面的单元格将高亮显示,然后(如果您放下组件),它将被添加到该单元格中。所以我知道这是可能的(作为一个概念也不奇怪)。

有什么想法吗?

共有1个答案

戚阳
2023-03-14

这并不能完全回答我的问题,但它对我短期内有用,对其他人也可能有用。只有当单元格在被查询的维度上是均匀的(即,所有相同的宽度/高度)时,它才起作用。

 public int getCoord(double width, double coord, int numberOfSections) {
        long dim = Math.round(width / numberOfSections);
        long border = dim;
        int val = 0;
        while(coord > border) {
            border += dim;
            val++;
        }
        return val;
    }

由于无法直接遍历行和列的当前状态,我认为完整的解决方案需要分析子项(如果有)以及行和列约束。

 类似资料:
  • 我正在尝试在JavaFX中可视化一个图形。节点应该是交互式的。目前我有一个VBox,并根据我在图形中需要的级别将尽可能多的HBox放入其中。所有HBox都设置为将其子节点定位为中心。子节点代表单个节点,是按钮。VBox本身被放置在StackPane中,Canvas作为StackPane的另一个子节点。然后将此StackPane放置到场景中。我想使用Canvas来绘制节点之间的连接边缘。要获取我使用

  • 我正在制作一个基于虫子“感知”和吃食物的网格风格游戏/模拟。我正在使用标签的gridPane(称为)来显示虫子和食物的网格。当虫子将细胞移向食物等时,这显然会不断更新。 我目前有一个函数,我想用在cell Content中具有新文本的标签替换[row, ol]处的标签。 我有一个有效的方法 然而,我担心这仅仅是在当前标签上添加了一个标签,显然超过100次的模拟迭代并不理想。 在添加标签之前,我已经

  • 在文档 场景编辑器 和 节点和组件 中,我们介绍了可以通过 变换工具 Gizmo 和编辑 属性检查器 中节点的属性来变更节点的显示行为。这篇文档我们将会深入了解节点所在场景空间的坐标系,以及节点的 位置(Position)、旋转(Rotation)、缩放(Scale) 三大变换属性的工作原理。 坐标系 我们已经知道可以为节点设置位置属性,那么一个有着特定位置属性的节点在游戏运行时将会呈现在屏幕上的

  • 我正在努力学习RCP中的TreeViewer。我为此写了一小段代码。 我的代码哪里有问题? 谢了!

  • 问题内容: 我从计算机访问服务器 得到这个 为什么使用Java API会出错? 编辑 有集群和节点部分的配置 问题答案: 一些建议: 1-使用端口9300。[9300-9400]用于节点到节点通信,[9200-9300]用于HTTP通信。 2-确保您使用的Java API的版本与服务器上运行的elasticsearch的版本匹配。 3-确保集群名称为(检查服务器上的elasticsearch.ym

  • 问题内容: 我正在尝试从Java Web Service中的Elastic Search中进行搜索,这是我现在使用的方式: 第一行可以正常工作,但是转到第二行时,将发生以下异常: NoNodeAvailableException [没有已配置的节点可用:[{#transport#-1} {TskPSVeBRR6CvCzP9EVhkQ} {192.168.10.150} {192.168.10.15