【问题标题】:Javafx GridPane child alignmentJavafx GridPane 子对齐
【发布时间】:2016-07-31 11:58:36
【问题描述】:

首先我想说的是,我不会包含我的任何代码,因为相关代码在许多函数和文件中都很普遍。我只是想看看我是否做错了什么,否则我不会用没完没了的代码行让你厌烦。

我正在尝试使用 Java 和 JavaFX 编写某种游戏。我创建了多个包含不同图形的GridPane 对象(现在都是占位符),全部堆叠在StackPane 上。一个GridPane 包含阴影对象,它们是低不透明度的黑色方块,覆盖在实际环境中。一个函数确定一个正方形是否应该被着色,然后在GridPane的那个位置添加一个黑色正方形的实例。

虽然一切正常,如下图所示,GridPane 将自身拆分为多个区域。 似乎每 25 个垂直或水平方格,GridPane 就会添加一个空白像素线,将其他所有内容偏移到侧面、下方或两者兼而有之。

我检查过所有的填充都是 0,并且由于阴影图像是通过整数值添加的,我无法理解为什么会发生这种情况。有什么想法吗?

(作为一个非常短的sn-p代码,这个函数添加了阴影方块)

shadowGrid.getChildren().clear();
for (int j=0;j<MAPYSIZE;j++){
    for (int i=0;i<MAPXSIZE;i++){
        if (isShaded(i,j)){
            ImageView shadow=new ImageView(shadowBlock);
            shadow.setOpacity(0.5);
            shadowGrid.add(shadow,i,j);
        }
    }
}

,

【问题讨论】:

  • 与问题无关,但如果您对不同的ImageViews 使用相同的图像文件,您应该将数据加载到单个Image 实例并将其用作@987654334 的数据@s。 (但在这种情况下,Rectangles 也足够了。)
  • 如果阴影网格包围了屏幕的一定百分比,它似乎被切割了。我仍然无法理解为什么会这样。有人帮忙吗?

标签: java javafx graphics alignment gridpane


【解决方案1】:

这可能早就应该了,但我找到了解决方案(因为我遇到了同样的问题)。

即你需要调用:

GridPane.setHalignment(objectYouWantToCenter, HPos.CENTER);

在将其添加到 shadowGrid 之前。请注意,这不是在 shadowGrid 上调用的,而是在对象 GridPane 上调用的。

【讨论】:

    猜你喜欢
    • 2019-04-14
    • 1970-01-01
    • 2014-11-09
    • 2017-04-18
    • 2016-05-28
    • 1970-01-01
    • 2019-01-08
    • 2020-12-05
    • 2021-03-17
    相关资源
    最近更新 更多