gpt4 book ai didi

java - 如何将 JavaFXML 中的各个表格列标题与 CSS 对齐

转载 作者:行者123 更新时间:2023-11-28 00:58:57 25 4
gpt4 key购买 nike

我想让一些列标题左对齐,而另一些列标题右对齐,例如:

|hdr1   |hdr2  |    hdr3|    hdr4| 

在我的 css 样式表中我尝试过:

#colHeadingLeft .column-header{
-fx-alignment: CENTER_LEFT;
}

#colHeadingRight .column-header{
-fx-alignment: CENTER_RIGHT;
}

在 SceneBuilder、Java FX CSS 中,我将 id 设置为上面定义的每个列标题标签。但是,这根本没有效果。我得到的是让每个标题中心像这样对齐:

|  hdr1  |  hdr2  |  hdr3  |  hdr4 | 

我已经尝试了大量的实验来使这个工作没有成功,我想知道是否真的可以在 tableview 中单独设置列的样式。

最佳答案

您需要为列标题的子标签设置对齐方式。此外,我建议使用 style classes实现这个目标。

以下 ComboBox 允许您选择 TableColumn 列的对齐方式:

column.getStyleClass().add("center");

ComboBox<String> styleChoice = new ComboBox<>();
styleChoice.getItems().addAll("left", "center", "right");
styleChoice.valueProperty().addListener((o, oldValue, newValue) -> column.getStyleClass().set(column.getStyleClass().size() - 1, newValue));
.column-header.center .label {
-fx-alignment: center;
}

.column-header.left .label {
-fx-alignment: center-left;
}

.column-header.right .label {
-fx-alignment: center-right;
}

组合框只是一个以编程方式更改对齐方式的示例。当然,您可以将适当的样式类添加到 TableColumn:

column1.getStyleClass().add("left");
column2.getStyleClass().add("left");
column3.getStyleClass().add("right");
column4.getStyleClass().add("right");

恕我直言,不应使用 ID,因为您要将相同的样式应用于多个列。 (使用 id 需要您为 CSS 中的每一列添加一个单独的选择器。)

关于java - 如何将 JavaFXML 中的各个表格列标题与 CSS 对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52788385/

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