【发布时间】:2014-09-10 17:23:57
【问题描述】:
在 JavaFX 8 中,我想指定 css 来旋转标签,以便文本不是从左到右,而是从下到上。
我该怎么做?
【问题讨论】:
在 JavaFX 8 中,我想指定 css 来旋转标签,以便文本不是从左到右,而是从下到上。
我该怎么做?
【问题讨论】:
任何节点都可以使用-fx-rotate css 属性通过 CSS 设置其旋转样式。
这是旋转的角度,以度为单位。零度在 3 点钟方向(直接向右)。角度值顺时针为正。旋转是关于中心的。
因此,在您的代码或 FXML 中,您可以拥有:
label.setStyle("vertical");
您可以在您的 css 样式表中定义:
.vertical { -fx-rotate: -90; }
另请注意 James_D 的回答建议,即在执行布局边界计算时将标签包装在组中以考虑旋转。
【讨论】:
在标签上调用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);
}
}
【讨论】: