如何旋转标签

时间:2014-09-10 17:23:57

标签: javafx javafx-8

在JavaFX 8中,我想指定用于旋转Label的css,以便从左到右而不是文本从底部到顶部。

我该怎么做?

2 个答案:

答案 0 :(得分:6)

任何节点都可以使用-fx-rotate css属性通过CSS设置旋转样式。

  

这是以度为单位的旋转角度。零度是在3点钟(直接向右)。角度值顺时针正。轮换是关于中心。

因此,在您的代码或FXML中,您可以拥有:

label.setStyle("vertical");

在您的css样式表中,您可以定义:

.vertical { -fx-rotate: -90; }

另请注意James_D的答案建议,即在执行布局边界计算时将标签包装在一个组中以解释轮换。

答案 1 :(得分:4)

调用标签上的setRotate将其围绕其中心旋转。

要允许布局窗格在旋转后正确测量标签的边界,请将其包装在Group

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class RotatedLabelTest extends Application {

    @Override
    public void start(Stage primaryStage) {
        Label label1 = new Label("Hello");
        Label label2 = new Label("World");

        label1.setRotate(-90);
        Group labelHolder = new Group(label1);

        HBox root = new HBox(5, labelHolder, label2);
        root.setAlignment(Pos.CENTER);

        Scene scene = new Scene(root, 250, 150);
        primaryStage.setScene(scene);
        primaryStage.show();

    }

    public static void main(String[] args) {
        launch(args);
    }
}