- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我设法潜伏并找到一个可以替代的好类(class) JTable(Object[][] data, Object[] columnNames)
与 RowTableModel(List<T> modelData, List<String> columnNames)
相反,这很棒,因为它允许我直接从 Students.ser 文件动态添加我的学生数据。
不知过了多久,我还是没能解决一个奇怪的问题。该表正确显示了除其内部数据之外的所有内容。
<小时/>这是当前结果:
显然那些空行是我拥有的学生数量(在本例中为 5),但是没有打印任何数据。
我的想法是我需要为每一列分配一个特定的学生字段,例如。对于行名称,我分配 Student.getName()
<小时/>如果您想查看RowTableModel
这是我使用过的已记录的类方法/构造函数:
构造函数
/**
* Constructs a <code>RowTableModel</code> with initial data and
* customized column names.
*
* Each item in the <code>modelData</code> List must also be a List Object
* containing items for each column of the row.
*
* Each column's name will be taken from the <code>columnNames</code>
* List and the number of colums is determined by thenumber of items
* in the <code>columnNames</code> List.
*
* Sub classes creating a model using this constructor must make sure
* to invoke the setRowClass() method.
*
* @param modelData the data of the table
* @param columnNames <code>List</code> containing the names
* of the new columns
*/
protected RowTableModel(List<T> modelData, List<String> columnNames)
{
setDataAndColumnNames(modelData, columnNames);
}
setDataAndColumnNames:
/**
* Reset the data and column names of the model.
*
* A fireTableStructureChanged event will be generated.
*
* @param modelData the data of the table
* @param columnNames <code>List</code> containing the names
* of the new columns
*/
protected void setDataAndColumnNames(List<T> modelData, List<String> columnNames)
{
this.modelData = modelData;
this.columnNames = columnNames;
columnClasses = new Class[getColumnCount()];
isColumnEditable = new Boolean[getColumnCount()];
fireTableStructureChanged();
}
<小时/>
getValueAt(int row, int col) - 工作代码!:
@Override
public Object getValueAt(int row, int col) {
Student myStudent = getRow(row);
switch(col){
case 1: return students.get(row).getTeacherId();
case 2: return students.get(row).getId();
case 3: return students.get(row).getName();
case 4: return students.get(row).getSurname();
case 5: return students.get(row).getEmail();
case 6: return students.get(row).getDateOfBirth();
case 7: return students.get(row).getTel();
case 8: return students.get(row).getCourse();
case 9: return students.get(row).isOOP();
case 10: return students.get(row).getYearOfMembership();
case 11: return students.get(row).hasConsent();
default: return null;
}
}
最佳答案
来自link你已经给出了:
The RowTableModel is an abstract class. It does not implement the getValueAt() or setValueAt() methods of the TableModel. This will allow you to extend the model to support row Objects of any type in the model. You will only need to extend this class to implement these methods for your particular row Object type. For a simple example of how this might be done see the JButtonTableModel example code found below.
如果未实现这些方法,JTable
将无法询问表数据模型。因此构造函数中传递的数据将不会被使用。
关于java - JTable AbstractTableModel 未触发动态数据列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25306454/
添加一行并调用 fireTableRowInserted() 还是添加所有行然后调用 fireTableDataChanged() 是个好主意? 最佳答案 如果您所做的只是添加新行,最好添加所有行,然
我正在尝试用 VCID 和 VCIDBACKUP 的空值替换“Dont Have”。这是我的代码: if (controladorExcel == false) { Writa
我有这个表模型,并且我插入以这种方式调用的值: lista.setModel(new SimpleTableModel(dados, colunas)); lista 是 JTable 型号:
我的表格模型在更新其中打印的数据时遇到问题。 我有作为表模型的 AgendaTableModel 类和作为主 UI 的 Screen 类,当我按下“Listar Contatos”按钮时,表模型应该出
我正在开发一个小程序,它应该在 JTable 中显示食谱。一切似乎都工作正常,我遇到的唯一问题是我无法初始化应该正确保存数据的对象。这是让我头疼的类(class): class RecipeTable
我有一个类,它实际上是一些数据的列表,它扩展了AbstractTableModel。此类中的数据存储在线程安全的数组列表中。 但是,如果我想添加一些数据,可以说我在扩展 AbstractTableMo
我引用了很多方法。即fireTableCellUpdated 的有效方法。但其实我还是不申请。 DETA值更新后如何使表内容更新。 方法我调用GJJ方法实现。虽然更新了但是出现了很多新的窗口。这不是我
我找到的例子: http://www.java2s.com/Code/Java/Swing-Components/ButtonTableExample.htm显示如何创建具有指定列(按钮)的 JTab
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我有两个类。第一个类mainWindow扩展了JFrame,其中我有一个JTable table1。在我的第二堂课中,我需要拿到这张 table 。当我在 mainWindow 中生成 getter
在设置特定外观后序列化扩展 AbstractTableModel 的类会导致 java.io.NotSerializedException: com.sun.java.swing.plaf.windo
我有一个扩展 JTable 的类,我想将其设置为 AbstractTableModel,但我了解其可能性的唯一方法是调用 使用 super 的 JTable 构造函数。 但是,我需要在调用构造函数之前
我设法潜伏并找到一个可以替代的好类(class) JTable(Object[][] data, Object[] columnNames)与 RowTableModel(List modelData
嘿。我正在尝试使用 AbstractTableModel 构建一个简单的 JTable,但即使我使用了 JScrollPane,列名称也不会出现。 public class TableModel ex
我有一些数据从我的数据库加载并作为公共(public)静态列表存储在另一个类中,我无法访问 MyTableModel 类中的数据以在 jtable 中存储和查看它们...还有许多其他方法可以用我的数据
是否可以动态更改 AbstractTableModel 列名称? 我正在尝试实现setColumnName(0, "Speed rpm")方法。 public class MyModel extend
我想根据我使用 AbstractTableModel 指定的列从数据库的表中提取数据。表中有 8 列,但只想显示 8 列中的 3 列。 例如: 数据库具有以下列:ID、First_Name、Last_
我已经实现了一个 AbstractTableModel 对象,它是一种时间表。我想将当时将通过使用方法教授的主题写入单元格(因此我不想将行声明为已编译)。我能怎么做?这是我的 AbstractTabl
我正在尝试将 JTable(类型 AbstractTableModel)中编辑的行保存到文件中。我不知道该怎么做;或者可以使用 ObjectOutput 和 InputStream。 此外,我想在保存
我正在制作一个 Swing 项目。可能太大了,无法粘贴到这里。我什至尝试记录 table.getSelectedRow() 并且它显示了正确的索引。但不知何故,当我按下删除按钮时,这会导致在此类中调用
我是一名优秀的程序员,十分优秀!