0

我正在尝试将 hbox 的 shape 属性设置为多边形。下面的代码在一个类中,该类使用一个构造函数扩展了 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 的优点,比如可以添加诸如文本之类的子项。

4

1 回答 1

1

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

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))
于 2017-06-26T15:26:54.723 回答