在JavaFX 8中,我想指定用于旋转Label的css,以便从左到右而不是文本从底部到顶部。
我该怎么做?
答案 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);
}
}