我正在努力应对我需要.getShape()
按钮的交叉点。
但是,因为API陈述
当为null时,Region将呈现为圆角矩形。
这意味着默认情况下按钮没有形状设置。
我不想在按钮上.setShape()
但是要检查我的交叉点,我需要{@ 1}}按钮返回null。
当.getShape()
返回null时,有没有办法获取按钮节点的默认形状?
我有2个.getShape()
按钮和圆圈(有点气泡)
.observableArrayList()
然后我将所有按钮和圆圈添加到obs列表中:
private final ObservableList<Circle> circles = FXCollections.observableArrayList();
private final ObservableList<Button> buttonsList = FXCollections.observableArrayList();
private final ObjectProperty<BoundsType> selectedBoundsType = new SimpleObjectProperty<>(BoundsType.BOUNDS_IN_PARENT);
圆圈有点不同我点击鼠标单独添加它们。 然后检查圆圈和按钮之间的交叉点。
buttonsList.addAll(rootPane.getChildrenUnmodifiable()
.stream()
.filter(node -> node instanceof Button)
.map(node -> (Button) node)
.collect(Collectors.toList()));
但就像我说for (Button btn : buttonsList) {
for (Circle c : circles) {
ShapePair pair = new ShapePair(c.getShape(), btn.getShape());
if (pair.intersects(selectedBoundsType.get())) {
System.out.println("Colision");
//logic
}
}
}
让我为空;(
答案 0 :(得分:0)
对,我认为这样做更容易
for (Button btn : buttonsList) {
for (Circle c : circles) {
if (btn.getBoundsInParent().intersects(b.getBoundsInParent())) {
System.out.println("Colision");
}
}
}