我正在尝试使用 TableView 来显示用户创建的一些数据,但不幸的是,没有显示一些具体的列内容。有问题的列是一种两级 bean,或者换句话说,是一个包装的 bean:
省略了 getter 和 setter
public class ItemBean {
private VisaoProdutoPreVenda produto;
private BigDecimal quantidade = new BigDecimal("0.0");
private BigDecimal valorUnitario = new BigDecimal("0.0");
private BigDecimal valorDesconto = new BigDecimal("0.0");
private BigDecimal valorAcrescimo = new BigDecimal("0.0");
private BigDecimal aliquotaDesconto = new BigDecimal("0.0");
private BigDecimal aliquotaAcrescimo = new BigDecimal("0.0");
private Integer ordem;
private String idVendedor;
private Boolean fracionado = false;
private boolean cancelado = false;
private String status = "AB";
}
public class VisaoProdutoPreVenda{
private int id;
private int idProduto;
private BigDecimal valorDesconto;
private BigDecimal quantidadeDisponivel;
private BigDecimal vlUnitario;
private int idEmpresa;
private Integer idLinha;
private int idClasse;
private int idSubclasse;
private String nomeLinha;
private String unidade;
private String descricao;
private String descricaoComplementar;
private String fracionar;
private int idTipoDesconto;
}
我想在表中使用 VisaoProdutoPreVenda bean 的三个字段,所以我尝试了这个:
public class ControladorPainelPreVenda {
...
@FXML
private TableView<ItemBean> tabelaItens;
@FXML
private TableColumn colunaCodigo;
@FXML
private TableColumn colunaDescricao;
@FXML
private TableColumn colunaLinha;
@FXML
private TableColumn colunaQuantidade;
@FXML
private TableColumn colunaValorLiquido;
@FXML
private TableColumn colunaValorTotal;
private ObservableList<ItemBean> itens = FXCollections.observableArrayList();
...
private void configurarTabela() {
/* These three first columns content aren't shown */
colunaCodigo.setCellValueFactory(new PropertyValueFactory<ItemBean,String>("produto.id"));
colunaDescricao.setCellValueFactory(new PropertyValueFactory<ItemBean,String>("produto.descricao"));
colunaLinha.setCellValueFactory(new PropertyValueFactory<ItemBean,String>("produto.nomeLinha"));
colunaQuantidade.setCellValueFactory(new PropertyValueFactory<ItemBean,BigDecimal>("quantidade"));
colunaValorLiquido.setCellValueFactory(new PropertyValueFactory<ItemBean,BigDecimal>("valorLiquido"));
colunaValorTotal.setCellValueFactory(new PropertyValueFactory<ItemBean,BigDecimal>("valorTotal"));
tabelaItens.setItems(itens);
}
...
}
我不知道我是否可以在 PropertyValueFactory 中使用像“produto.id”这样的符号。我如何配置这三列来显示我想要的内容?