gpt4 book ai didi

java - 如何更改表列的伪类状态?

转载 作者:太空宇宙 更新时间:2023-11-04 11:31:57 26 4
gpt4 key购买 nike

我正在尝试设置以下日历的样式,以便当 TableColumn 所属日期不属于当月的一部分时(即 3 月 26 日 - 3 月 31 日和 5 月 1 日 - 5 月 29 日)标题为粉红色:

enter image description here

我像这样扩展了TableView:

public class DayTableView extends TableView<Appointment> {

private static PseudoClass OFF_MONTH_PSEUDO_CLASS = PseudoClass.getPseudoClass("off-month");

public DayTableView() {
getStyleClass().add("day-table-view");
}

private BooleanProperty offMonth = new BooleanPropertyBase(false) {

public void invalidated() {
pseudoClassStateChanged(OFF_MONTH_PSEUDO_CLASS, get());
}

@Override
public Object getBean() {
return this;
}

@Override
public String getName() {
return "off-month";
}
};

public void setOffMonth(boolean b) {
offMonth.set(b);
}

}

并添加了此样式:

.day-table-view  {
-fx-font-size: 9 px;
-fx-background-color: lightcyan;

}

.day-table-view:off-month {
-fx-font-size: 9 px;
-fx-background-color: pink;

}

但这就是结果:

enter image description here

所以我尝试了这样的样式:

.day-table-view .table-column  {
-fx-font-size: 9 px;
-fx-background-color: lightcyan;

}

.day-table-view .table-column:off-month {
-fx-font-size: 9 px;
-fx-background-color: pink;

}

但是TableColumn仅采用浅青色格式(它看起来就像第一个日历图像。

所以我尝试了这种样式:

.day-table-view .table-column  {
-fx-font-size: 9 px;
-fx-background-color: lightcyan;

}

.day-table-view:off-month .table-column {
-fx-font-size: 9 px;
-fx-background-color: pink;

}

它确实有效,只是我只希望 TableColumn 标题 改变颜色,而不是 TableColumn 的背景:

enter image description here

所以我尝试扩展TableColumn:

enter image description here

但是正如您所看到的,没有 pseudoClassStateChanged 方法。所以我想知道我到底需要做什么才能使 TableColumn 标题发生变化?

最佳答案

使用查找怎么样?

tableView.applyCss();
tableView.layout();
PseudoClass pseudoClass = PseudoClass.getPseudoClass("off-month");
tableView.lookupAll(".column-header").forEach(node -> {
node.pseudoClassStateChanged(pseudoClass, true);
});
<小时/>
.table-view .column-header:off-month {
-fx-background-color: pink;
}

enter image description here

关于java - 如何更改表列的伪类状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43696580/

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