java将firebase数据放在JTable中
我正在努力将一些firebase数据放入JavaSwing中的jtable中。 如图所示,我已经能够从firebase检索数据,但由于某些原因,数据不会显示在JTable字段中(表1) 我看起来像getID(),getName()。。。方法没有得到任何值,因为我试图打印第[I]行以查看是否有任何值
There is a screenshot of the actual program
你们谁能告诉我是什么问题吗
addNewCaseButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
database = FirebaseDatabase.getInstance();
ref = database.getReference("NewCases");
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
System.out.println(dataSnapshot.getValue());
ArrayList<Object[]> myList = new ArrayList<>();
DefaultTableModel tableModel = (DefaultTableModel) table1.getModel();
tableModel.addColumn("ID");
tableModel.addColumn("Name");
tableModel.addColumn("Age");
tableModel.addColumn("City");
tableModel.addColumn("TimeStamp");
tableModel.addColumn("Disease");
tableModel.addColumn("Risk");
Object[] row = new Object[6];
tableModel.setNumRows(0);
myList.clear();
CasesList casesList = new CasesList();
for (DataSnapshot ds : dataSnapshot.getChildren()){
casesList.setID((Integer)ds.child("ID").getValue());
casesList.setName(ds.child("Name").getValue().toString());
casesList.setAge((Integer)ds.child("Age").getValue());
casesList.setCity(ds.child("City").getValue().toString());
casesList.setTimeStamp(ds.child("TimeStamp").getValue().toString());
casesList.setDisease(ds.child("Disease").getValue().toString());
casesList.setRisk(ds.child("Risk").getValue().toString());
// myList.add(ds.getKey());
row[0] = casesList.getID();
row[1] = casesList.getName();
row[2] = casesList.getAge();
row[3] = casesList.getCity();
row[4] = casesList.getTimeStamp();
row[5] = casesList.getDisease();
row[6] = casesList.getRisk();
myList.add(row);
System.out.println(myList);
tableModel.addRow(row);
}
table1.setModel(tableModel);
提前谢谢
# 1 楼答案
您是否用这样的行定义了表列
此外,方法
setModel
应该在for之后调用:编辑: 通过更详细的分析,我还验证了您有7个字段,但您的数组只有6个字段的空间。在这一行中
row [6] = casesList.getRisk ();
在运行时抛出一个异常。扩展阵列的大小以解决此问题。Object[] row = new Object[7];
要显示列名,可以方便地将表格添加到滚动面板中
这对我很有用: