有没有办法在JavaFX的ListView中将元素文本居中对齐?
我并没有找到一种可以实现这个功能的方法。
我并没有找到一种可以实现这个功能的方法。
您可以使用CSS样式表来设置ListView
中ListCell
的对齐方式。例如,如果将ID lv
分配给 ListView
:
#lv .list-cell {
-fx-alignment: center;
}
尝试加载字体:
Font.loadFont(getClass().getResourceAsStream("/direct/font_nam .ttf"), 20);
需要为ListView设置一个新的工厂。为此,我们将传递一个新的Callback对象到setCellFactory方法中,并重写ListCell单元格的call方法,以定义传入数据的格式规则。但实际上,通过CSS样式更容易实现,前面的CSS答案已经解释过了。
listViewOnExit.setCellFactory(new Callback<ListView<String>, ListCell<String>>() {
@Override
public ListCell<String> call(ListView<String> stringListView) {
ListCell<String> cell = new ListCell<String>(){
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
setText(item);
}
};
cell.setAlignment(Pos.CENTER);
return cell;
}
});
ListCell
进行样式设置。基于内容或索引选择单元格的唯一可能性是:empty
、:filled
、:odd
和:even
伪类。如果要更改未选中/聚焦的特定项目,你需要编写一个自定义的cellFactory
,返回更新基于内容的样式类/伪类的单元格。 - fabian