gpt4 book ai didi

java - 从 JTable 的另一个类传递 LinkedList。自动更新表

转载 作者:行者123 更新时间:2023-12-02 07:07:27 25 4
gpt4 key购买 nike

所以,我目前正在为我的程序构建 GUI。我将 JTable 与自定义 AbstractTableModel 一起使用,以使用不同 LinkedList 的内容填充它们。但是,如果我将 JTable 添加到 GUI 类,并在那里初始化 LinkedList 类,那么这不是我需要的 LinkedList。我需要 LinkedList Studentlist,我已将其存储在数据库类中。我如何告诉 table 呢?我无法真正展示任何 GUI 代码,因为它仍在制作中,我目前只是在测试。

我的另一个问题是,这是我的 AbstractTableModel:

public class StudentTableModel extends AbstractTableModel {

public static final String[] columnNames = { "ID", "First Name",
"Last Name" };
private LinkedList<Student> data;

public StudentTableModel(LinkedList<Student> data) {
this.data = data;
}

@Override
public int getColumnCount() {
return columnNames.length;
}

@Override
public String getColumnName(int column) {
return columnNames[column];
}

@Override
public int getRowCount() {
return data.size();
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Student student = data.get(rowIndex);
if (student == null) {
return null;
}
switch (columnIndex) {
case 0:
return student.getID();
case 1:
return student.getFirstname();
case 2:
return student.getLastname();
default:
return null;
}
}

}

我是否需要在代码中添加任何内容,以使表格在将学生添加到列表时自动更新?

提前致谢。

最佳答案

至少,

  • 如图here ,您的 setValueAt() 实现必须针对您的更新触发适当的事件。

  • 如果您公开一个公共(public)方法来改变数据,它也必须触发一个适当的事件。

在此上下文中,适当表示从 AbstractTableModel 继承的 fireXxx() 方法之一.

关于java - 从 JTable 的另一个类传递 LinkedList。自动更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15921264/

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