gpt4 book ai didi

javafx - TableView 中的垂直列文本

转载 作者:行者123 更新时间:2023-12-01 11:35:23 26 4
gpt4 key购买 nike

我尝试用 javafx 创建一个表。单元格内容主要是短文本或数字,但列标题是长描述文本。所以我更愿意旋转列标题中的文本。
下面的代码有效,但现在的问题是当使用鼠标减小列宽时,标题中的文本将被缩短(末尾带有省略号)。
可以“关闭”此行为吗?还有其他建议吗?

这是我的代码:

public class TableRotHeader extends Application {

private static final Logger LOG = Logger.getLogger(TableRotHeader.class.getName());

@Override
public void start(Stage stage) throws IOException {
Group group = new Group();
Scene scene = new Scene(group);
stage.setTitle("Table with rotated header");
stage.setWidth(800);
stage.setHeight(600);

TableView tableView = new TableView();
TableColumn colA = new TableColumn("horizontal\ncol header");
TableColumn colB = new TableColumn("");
final int minWidth = 25;
colA.setMinWidth(minWidth);
colB.setMinWidth(minWidth);

MyLabel l = new MyLabel("labeled attribute");
l.setRotate(-90);
l.setPrefHeight(150);
colB.setGraphic(l);

tableView.getColumns().addAll(colA, colB);

group.getChildren().add(tableView);
tableView.prefWidthProperty().bind(scene.widthProperty());
tableView.prefHeightProperty().bind(scene.heightProperty());
stage.setScene(scene);
stage.show();
}

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

ellipsis should be suppressed

编辑:两个答案(来自 James_D 和 Mailkov)都很好。
我现在想将 2 个标签分组以获得 2 条垂直线。这导致他们之间的距离。
A:如何得到一个合理的距离(截图中的红色箭头)?这可能是 textheight * 1.2 或类似的。
B:如何获取到标签顶部和底部的几个像素距离(蓝色箭头)?

Label label1 = new Label("col 1");
label1.setRotate(-90);
MyLabel label2 = new MyLabel("col number 2 with a long text");
label2.setRotate(-90);
label2.setStyle("-fx-background-color: white; -fx-font-weight: normal");
Group g = new Group(label1, label2);
colB.setGraphic(g);

enter image description here

最佳答案

将标签包裹在 Group 中:

    colB.setGraphic(new Group(l));

关于javafx - TableView 中的垂直列文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27666087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com