gpt4 book ai didi

JavaFX TableView - 将表格列的内容居中

转载 作者:行者123 更新时间:2023-12-04 00:40:59 24 4
gpt4 key购买 nike

我有一个大问题。

我尝试将 TableColumn 的内容置于 TableView 的中心。

我已经尝试了我在网上找到的所有方法,但实际上没有任何效果!

有没有人遇到过同样的问题?任何解决方案?

希望得到帮助!

编辑:

好吧,我能够使用这段代码将静态单元格的内容居中:

tc_customer.setCellFactory(new Callback<TableColumn<TvAccounting, String>, TableCell<TvAccounting, String>>() {
@Override
public TableCell<TvAccounting, String> call(TableColumn<TvAccounting, String> p) {
TableCell<TvAccounting, String> tc = new TableCell<TvAccounting, String>();
tc.setAlignment(Pos.CENTER);
tc.setText("SOMETEXT");
return tc;
}
});

但是内容应该来自数据库,我真的不知道如何从我在 TABLEVIEWNAME.setItems 方法中使用的 ObservableList 对象中获取数据...

我第一次使用这段代码:

tc_customer.setCellValueFactory(new PropertyValueFactory<TvAccounting, String>("Customer"));

但是没有办法让内容居中!

请问有人能帮帮我吗?

编辑:

感谢这个出色的答案,我做到了!

代码如下:

tc_customer.setCellFactory(new Callback<TableColumn<TvAccounting, String>, TableCell<TvAccounting, String>>() {
@Override
public TableCell<TvAccounting, String> call(TableColumn<TvAccounting, String> p) {
TableCell<TvAccounting, String> tc = new TableCell<TvAccounting, String>(){
@Override
public void updateItem(String item, boolean empty) {
if (item != null){
setText(item);
}
}
};
tc.setAlignment(Pos.CENTER);
return tc;
}
});

tc_customer.setCellValueFactory(new PropertyValueFactory<TvAccounting, String>("Customer"));

非常感谢!!!

最佳答案

CellValueFactory 和 CellFactory 是两个不同的东西。CellValueFactory 用于指定值的来源,而 CellFactory 指定它们如何显示。

两者同时使用。但是在 setCellFactory 代码中你应该setText 。设置文本将由 updateItem() 方法中的 TableCell 代码处理。此方法将使用从“cellValueFactory”提供的值,并负责将其设置在自己的标签内。

tc_customer.setCellFactory(
new Callback< TableColumn<TvAccounting, String>,
TableCell<TvAccounting, String>>()
{
@Override public TableCell<TvAccounting, String>
call(TableColumn<TvAccounting, String> p) {
TableCell<TvAccounting, String> tc =
new TableCell<TvAccounting, String>();
tc.setAlignment(Pos.CENTER);
// tc.setText("SOMETEXT"); This line should be removed
return tc;
}
}
);

关于JavaFX TableView - 将表格列的内容居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18783093/

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