我尝试在一个类中读取CSV文件,该类循环遍历CSV文件的内容(采用第1列中的学生编号和第1题到第xAmount题的形式),并根据CSV文件中的行创建一个对象。在另一个类中,我正在创建一个表,并尝试使用CSV文件的内容动态填充该表。
到目前为止,我已经设置了它,以便根据CSV文件中的标题动态填充列,但是,每当遇到行时,它都会抛出一个错误:"警告:无法在PropertyValueFactory中检索属性'学生编号':javafx.scene.control.cell.PropertyValueFactory@76afc271具有提供的类类型:class java.lang.String "并对CSV文件中的每一列都执行此操作。是否有任何方法可以动态填充行?
下面是StudentCsv类的代码:
public class StudentCsv {
private int[] marks;
private String studentNumber;
public StudentCsv(String studentNumber, int[] marks) {
this.studentNumber=studentNumber;
this.marks = marks;
}
}
下面是tableView类的代码:
x一个一个一个一个x一个一个二个一个x一个一个三个一个
填充表时,其填充方式为
1条答案
按热度按时间hvvq6cgz1#
列的单元格值工厂是一个函数,它接受表示行的对象(一个
StudentCsv
,这是一个糟糕的类名),并返回一个ObservableValue
,其中包含要在该行的该列中显示的值(即列中每个单元格中的值)。该函数应用于表中的每个可见行,以确定在列的单元格中显示的内容。因此,单元格值工厂应该是一个函数,它接受一个
Student
,并返回一个ObservableValue
,用于 Package 该列的值。第一列的单元格值工厂应该返回一个包含studentNumber
的ObservableValue
。其余列的单元格值工厂应该返回一个包含相应mark
的ObservableNumber
。因此,您需要从
studentNumber
和marks
的访问方法开始。现在你的单元格值工厂可以为每一列返回合适的值了。我修正了这里的一些丑陋的代码。我不知道为什么你有一个名为
studentNumber
的字段,它是String
(而不是某种数值类型),但我还是留了下来,以防有什么好的理由。这是未经测试的,所以可能有错别字。