2017-10-29 35 views
2

使用JavaFX我创建了一个简单的矩形对象,我希望能够在该矩形内放置一个文本对象,并使其自动在矩形内保持对齐。我要画的矩形的代码是:如何在Javafx中将文本插入到形状中?

public static Scene createScene() { 
     Group root = new Group(); 
     Scene scene = new Scene(root, Color.ALICEBLUE); 

     Rectangle rectangle_red = new Rectangle(); 

     rectangle_red.setFill(Color.TRANSPARENT); 
     rectangle_red.setStroke(Color.BLACK); 
     rectangle_red.setX(50); 
     rectangle_red.setY(50); 
     rectangle_red.setWidth(200); 
     rectangle_red.setHeight(100); 
     rectangle_red.setCursor(Cursor.HAND); 
     rectangle_red.setOnMousePressed(circleOnMousePressedEventHandler); 
     rectangle_red.setOnMouseDragged(circleOnMouseDraggedEventHandler);   

     root.getChildren().add(rectangle_red);  

     return scene; 
    } 

我已附加到矩形的处理程序允许我拖动窗口中任何位置的矩形。如何在矩形内放置文本,使其保持对齐,因为我在屏幕上拖动了该形状?

回答

3

曾经出现在here最后一个例子所示,Animation Basics例如TimelineEvents通过添加Circle有的TextStackPane,默认情况下它的中心儿童做到这一点。堆栈可以作为一个单元在封闭的Group中移动。

final Circle circle = new Circle(…); 
final Text text = new Text (…); 
final StackPane stack = new StackPane(); 
stack.getChildren().addAll(circle, text); 
… 
stack.setLayoutX(30); 
stack.setLayoutY(30); 

image

相关问题