Предположим, у меня есть следующие:Обновление TextField, когда размер изменения формы - JavaFX
Создание прямоугольника (с верхней левой Handler):
public Group createDraggableRectangle(double x, double y, double width, double height) {
final double handleRadius = 20 ;
final double handleRadius2 = 30 ;
Rectangle rect = new Rectangle(x, y, width, height);
// top left resize handle:
Circle resizeHandleNW = new Circle(handleRadius, Color.RED);
resizeHandleNW.setOpacity(0);
// bind to top left cornerof Rectangle:
resizeHandleNW.centerXProperty().bind(rect.xProperty());
resizeHandleNW.centerYProperty().bind(rect.yProperty());
resizeHandleNW.setStyle("-fx-cursor: NW_RESIZE; ");
Group group = new Group(rect, resizeHandleNW);
Wrapper<Point2D> mouseLocation = new Wrapper<>();
setUpDragging(resizeHandleNW, mouseLocation) ;
resizeHandleNW.setOnMouseDragged(event -> {
if (mouseLocation.value != null) {
double deltaX = event.getSceneX() - mouseLocation.value.getX();
double deltaY = event.getSceneY() - mouseLocation.value.getY();
double newX = rect.getX() + deltaX ;
if (newX >= handleRadius
&& newX <= rect.getX() + rect.getWidth() - handleRadius) {
rect.setX(newX);
rect.setWidth(rect.getWidth() - deltaX);
}
double newY = rect.getY() + deltaY ;
if (newY >= handleRadius
&& newY <= rect.getY() + rect.getHeight() - handleRadius) {
rect.setY(newY);
rect.setHeight(rect.getHeight() - deltaY);
}
mouseLocation.value = new Point2D(event.getSceneX(), event.getSceneY());
}
return group;
});
контроллер класса (метод выбора Object):
@FXML
private TextField heightField;
if (!selectedShapes.contains(shape)) {
shape.setStyle("-fx-effect: dropshadow(three-pass-box, #cece02, 6, 6, 0, 0);");
selectedShapes.add(shape);
rotate.setDisable(false);
deletebutton.setDisable(false);
}
Я знаю, что писать System.out.println (rect.getHeight()) в R Класс ectangle даст мне высоту каждый раз, когда размер будет изменен.
Однако мой вопрос заключается в том, как бы добавить это значение в textField, хранящийся в моем классе контроллера? Я пробовал разные способы, но я все равно получаю исключение с нулевым указателем.
Благодаря
Это Wo rked! Спасибо! : D (я поставлю галочку через пять минут) – TheBeliever12
Эй, просто быстрый вопрос, предположим, у меня также был поворот, чтобы получить угол формы. Как бы я мог написать это аналогично - rotateField.textProperty(). Bind (Bindings.createStringBinding ( () -> String.format ("%. 1f", group.getBoundsInLocal(). GetHeight()), . boundsInLocalProperty())); – TheBeliever12
@ TheBeliever12 Используйте 'rotateProperty' (или какое-либо свойство меняется при его повороте)? –