2017-10-29 170 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