JavaFX SetText CSS 选项
JavaFX SetText CSS options
我正在使用 Jfoenix 库,我已经让它显示一年中的第几天和一个月中的第几天(在此处询问第一个提示之后)。它们都在 setText 行内。我想弄清楚是否可以将 CSS 分别添加到它们中,这样我就可以使年度中的某一天看起来更小,在右上角,并且可能是不同的颜色。我用谷歌搜索了很多但没有得到我正在寻找的答案。谢谢。
endDate.setDayCellFactory(p -> new DateCell() {
@Override
public void updateItem(LocalDate item, boolean empty) {
super.updateItem(item, empty);
if (item == null) {
setText("");
} else {
setText(Integer.toString(item.getDayOfYear()) + "\r\n" + Integer.toString(item.getDayOfMonth()));
}
}
});
同一 Labeled
中的文本样式不能不同,但可以使用 graphic
属性 来显示日期:
DatePicker datePicker = new DatePicker();
datePicker.setDayCellFactory(p -> new DateCell() {
private final Text doy = new Text();
private final Text dom = new Text();
private final VBox graphic = new VBox(doy, dom);
{
setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
doy.setFont(Font.font(8));
dom.setFont(Font.font(15));
VBox.setMargin(dom, new Insets(0, 0, 0, 10));
}
@Override
public void updateItem(LocalDate item, boolean empty) {
super.updateItem(item, empty);
if (item == null) {
setGraphic(null);
} else {
setGraphic(graphic);
doy.setText(Integer.toString(item.getDayOfYear()));
dom.setText(Integer.toString(item.getDayOfMonth()));
}
}
});
顺便说一句:对于 java 内部字符串处理通常不需要 \r
。仅当您将字符串写入文件或使用依赖于 OS 的行分隔符的 class 时才需要这样做;只有 \n
可以很好地满足您在此处使用它的目的。如果你需要在不同的 OS 上使用不同的行分隔符,硬编码 \r\n
不是一个好主意;请改用 System.lineSeparator()
。
我正在使用 Jfoenix 库,我已经让它显示一年中的第几天和一个月中的第几天(在此处询问第一个提示之后)。它们都在 setText 行内。我想弄清楚是否可以将 CSS 分别添加到它们中,这样我就可以使年度中的某一天看起来更小,在右上角,并且可能是不同的颜色。我用谷歌搜索了很多但没有得到我正在寻找的答案。谢谢。
endDate.setDayCellFactory(p -> new DateCell() {
@Override
public void updateItem(LocalDate item, boolean empty) {
super.updateItem(item, empty);
if (item == null) {
setText("");
} else {
setText(Integer.toString(item.getDayOfYear()) + "\r\n" + Integer.toString(item.getDayOfMonth()));
}
}
});
同一 Labeled
中的文本样式不能不同,但可以使用 graphic
属性 来显示日期:
DatePicker datePicker = new DatePicker();
datePicker.setDayCellFactory(p -> new DateCell() {
private final Text doy = new Text();
private final Text dom = new Text();
private final VBox graphic = new VBox(doy, dom);
{
setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
doy.setFont(Font.font(8));
dom.setFont(Font.font(15));
VBox.setMargin(dom, new Insets(0, 0, 0, 10));
}
@Override
public void updateItem(LocalDate item, boolean empty) {
super.updateItem(item, empty);
if (item == null) {
setGraphic(null);
} else {
setGraphic(graphic);
doy.setText(Integer.toString(item.getDayOfYear()));
dom.setText(Integer.toString(item.getDayOfMonth()));
}
}
});
顺便说一句:对于 java 内部字符串处理通常不需要 \r
。仅当您将字符串写入文件或使用依赖于 OS 的行分隔符的 class 时才需要这样做;只有 \n
可以很好地满足您在此处使用它的目的。如果你需要在不同的 OS 上使用不同的行分隔符,硬编码 \r\n
不是一个好主意;请改用 System.lineSeparator()
。