JavaFX TableView不显示内容
我试图在TableView中插入一些值,但它不显示列中的文本,即使它们不是空的,因为有三行(与TableView中插入的项目数相同),它们是点击。
我有类“ClientiController”这是fxml文件的控制器,这些是TableView的声明和tableView的列。
@FXML // fx:id="clientitable"
private TableView clientitable; // Value injected by FXMLLoader
@FXML // fx:id="nome"
private TableColumn nome; // Value injected by FXMLLoader
@FXML // fx:id="id"
private TableColumn id; // Value injected by FXMLLoader
@FXML // fx:id="telefono"
private TableColumn telefono; // Value injected by FXMLLoader
我调用initialize()方法的一个函数,称为loadTable(),它将内容添加到TableView。
loadTable在同一个类“ClientiController”中,这是它的实现:
@FXML
void loadTable()
{
//Cliente
try {
List<String> clienti = (List<String>) fc.processRequest("ReadClienti");
ObservableList<String> clienteData = FXCollections.observableArrayList(clienti);
id.setCellValueFactory(new PropertyValueFactory<Cliente, String>("id"));
nome.setCellValueFactory(new PropertyValueFactory<Cliente, String>("nome"));
cognome.setCellValueFactory(new PropertyValueFactory<Cliente, String>("cognome"));
telefono.setCellValueFactory(new PropertyValueFactory<Cliente, String>("n_tel"));
System.out.println(clienteData);
clientitable.setItems(clienteData);
} catch (SecurityException | NoSuchMethodException
| ClassNotFoundException | InstantiationException
| IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
在类Cliente
我有这些字符串:
private String id, nome, cognome, n_tel;
以及每个String元素的get和set函数,它们从数据库中获取值。 在这个类中,我也有readAll方法( ReadClienti
)。 在函数loadTable()
中的List<Cliente> clienti
中,存在readAll方法的结果,并且该函数返回ArrayList<ArrayList<String>>
类型。
如果我选择第一个原始的(即使我看不到列中的文本)然后像这样打印它,
ArrayList<String> person = (ArrayList<String>) clientitable.getSelectionModel().getSelectedItem();
System.out.println(person);
它一切正常,并打印出我插入的值作为第一,所以我知道值实际上是在该表中。
我也尝试将此类中的私有字符串字符串更改为SimpleStringProperty,就像我在此处的其他讨论中看到的,但没有任何更改。
我怎样才能让tableView显示其内容?
编辑:我认为问题出现在作业中
List<String> clienti = (List<String>) fc.processRequest("ReadClienti");
在loadTable()的第一个raw中,因为我无法将类型ArrayList<ArrayList<String>>
转换为List<String>
。 但是我必须将这些值填充到ListView中的ObservableList<String>
仅获取列表或简单ArrayLists作为输入。 我如何转换我的ArrayList<ArrayList<String>>
变量以匹配ObservableList类型?