设置 Hbox 的形状 属性 - JavaFX

Setting the shape property of an Hbox - JavaFX

我正在尝试将 hbox 的形状 属性 设置为多边形。以下代码位于 class 中,它使用构造函数扩展 Hbox,该构造函数需要称为 origPoints.

的点列表
val polygon = new javafx.scene.shape.Polygon()
origPoints.foreach{case (x,y) => polygon.getPoints.addAll(x,y)}
setShape(polygon)
setStyle("-fx-border-color: red")

抱歉,如果语法略有不同。我正在使用 ScalaFX,但我认为在这种情况下不会导致任何问题。

更多信息:我正在制作一张复杂的美国地图。我为每个州绘制了坐标。我想拥有使用hbox的优势,比如能够添加children比如text.

正如 Sedrick Jefferson 指出的那样,需要设置 minWidth 和 minHeight,否则 hbox 更喜欢 0 height/width。我希望我的国家能够在 window 调整大小时进行缩放,所以我将它们的 minHeight/minWidth 属性绑定到一个 SimpleDoubleProperty,该属性跟踪背景的比例,以便缩放 height/width相应地。

origPoints.foreach{case (x,y) => polygon.getPoints.addAll(x,y)}
shape = polygon
styleClass.setAll("country")
minHeight.bind(yScale.multiply(origHeight))
minWidth.bind(xScale.multiply(origWidth))