Val*_*lcu 4 java javafx alignment
我有一个 JavaFX Text,Scene并且Group
Text waitingForKey
Scene scene
Group root
Run Code Online (Sandbox Code Playgroud)
我有一个waitingForKeyString要添加的字符串 StringwaitingForKey并且我想要居中对齐。
问题是有时字符串有两个句子,我无法对齐
String waitingForKeyString= " Level 2 \n\n" + "Press ENTER to start a new game";
Run Code Online (Sandbox Code Playgroud)
或者
String waitingForKeyString=" 按ENTER \n"+ "开始游戏", messageString="";
然后
Scene scene = new Scene(root,SCREEN_WIDTH, SCREEN_HEIGHT, Color.BLACK);
waitingForKey.setText(waitingForKeyString);
root.getChildren().add(waitingForKey);
Run Code Online (Sandbox Code Playgroud)
那么我怎么能把它对齐到中心呢?当我尝试首先对齐时,waitingForKeyString我破坏了第二个 `waitingForKeyString,反之亦然。
您可以使用 aStackPane作为您的根,Scene因为它有一个alignmentProperty.
如果你想单独地对准Nodes在StackPane可以使用public static void setAlignment(Node child, Pos value)的方法StackPane。
示例(一个文本在中心对齐,另一个文本在左上角对齐)
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
StackPane root = new StackPane();
Text text2 = new Text("I will be aligned TOPLEFT");
Text text = new Text(" Level 2 \n\n" + "Press ENTER to start a new game");
text.setTextAlignment(TextAlignment.CENTER);
root.getChildren().addAll(text2, text);
StackPane.setAlignment(text2, Pos.TOP_LEFT);
StackPane.setAlignment(text, Pos.CENTER);
Scene scene = new Scene(root, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20723 次 |
| 最近记录: |