- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有一种方法可以从完整的 AbstractTableModel 派生出经过修剪的 AbstractTableModel 而无需 getValueAt() 复杂性?
我的完整数据(包括 userIds)被加载到 JTable AbstractTableModel 中。但是,出于显示目的,我希望导出与特定 userId 相关联的数据的经过修剪的 AbstractTableModel。
我开始认为这是不可能的,因为 getValueAt 介入并抛出 IndexOutOfBounds 异常?这些异常似乎是因为修剪后的数据未填充。
public class PrunedUserIdTableModel extends AbstractTableModel {
TableModel fullModel;
List columnIdentifiers;
List tempDatum;
List tempData; // holds tempDatums
int rowCount; // reports pruned rowCount through getRowCount() method
List prunedData; // intended to hold data of matched userId rows
public PrunedUserIdTableModel(JTable fullTable, String userId) {
fullModel = fullTable.getModel();
columnIdentifiers = new ArrayList();
tempDatum = new ArrayList();
tempData = new ArrayList();
rowCount = 0;
List<Integer> userCount = new ArrayList<>();
// Load columnIdentifiers from fullModel; omitted here
// Go through fullModel searching for rows with matching userIds
for (int i = 0; i < fullModel.getRowCount(); i++) {
for (int k = 0; k < fullModel.getColumnCount(); k++) {
tempDatum.add(fullModel.getValueAt(i,k);
if ((fullModel.getValueAt(i,k).equals(userId)) {
// Matching userId found; record relevant row
userCount.add(g);
}
}
tempData.add(tempDatum);
tempDatum.clear();
}
// Now populate prunedData
for (int j = 0; j < userCount.size(); j++) {
prunedData.add(tempData.get(userCount.get(j)));
rowCount=rowCount+1;
}
fireTableChanged(null);
}
@Override
public int getRowCount() {
return rowCount;
}
@Override
public int getColumnCount() {
return fullModel.getColumnCount();
}
@Override
public int getValueAt(int rowIndex, int columnIndex) {
// THROWS INDEX OUT OF BOUNDS EXCEPTION: Index 0; size 0
List rowList = (List)prunedData.get(rowIndex);
return rowList.get(columnIndex);
}
}
最佳答案
使用 TableRowSorter
过滤您的 JTable
行以仅显示您想要的行。然后,当您通过索引引用某些内容时,请务必调用 convertRowIndexToView
和 convertRowIndexToModel
。
关于java - 在没有 getValueAt() 并发症的情况下修剪 AbstractTableModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070694/
我编写了一个小程序,它使用JTable(在本例中为t1)并实现ListSelectionListener,因此通过单击一行,其中的数据将被放入数据库中(我使用mysql并通过JDBC连接)。 //
当我向 JTable 添加值并执行该方法的保存操作时,它就会被执行。问题是,当我在 JTable 中输入单个值(例如 "TEST")时,getValueAt(1,0) 返回 empty .当我输入两个
我正在实现一个包含大量数据的swing jtable,我希望在数据模型中的getValueAt时刻加载数据并在单元格中打印“Loading”并稍后返回数据,我不想在 UI 线程中执行查询。有什么想法吗
我知道它返回类型为Object,有没有办法将类型更改为最合适的类型?例如,它查看单元格,如果是 float ,则更改为浮点型,字符串更改为字符串类型等等。 编辑 好吧,单元格位于 jtable 中,我
我有一个 JXTreeTable,它的左侧有一棵节点树(不同的数据类型),右侧有一个网格(默认)。 现在我希望所有显示的值(还有树标题)均取自 getValueAt(row,column) 方法,而不
我试图将 defaulttablemodel 的所有值保存到我的 sql 数据库中,但每当我尝试通过 table.valueAt() 打印最后插入行上的值时,它都会返回 null。 try{
我的 JTable 从 AbstractTableModel 调用 getValueAt() 的频率如何? 如果我在 getValueAt() 中进行大量计算(例如,计算多项式的值),这是否正常?我应
我想知道为什么我的 getvalueAt() 在按下 Enter 时会选择旧数据。 我尝试了所有更新和表更改模块,但无法使其工作。我正在 JTable 中制作一个类似于 Excel 工作表的结构,其中
我是JTable的新手,也许我不明白一些东西。 假设我有 1000 名学生(id、name、surname、age)的 ArrayList。我想在 JTable 中显示所有学生。据我了解,我必须创建扩
我有一个带有使用 DefaultTableModel 的 JTable 的 GUI。 声明了这些实例变量: boolean doRun = false; Class clazz; Object oby
当我想从表中获取单元格值(在使用过滤进行搜索后)并选择该行并执行 returnAction() 时,会发生异常。 我的代码: public class BookPage_User extends JF
我需要扩展 AbstractTableModel 来表示表中的一些数据。我有一个类 Car ,它应该代表表中的一项(行): public class Car implements Comparable
我的问题出在这段代码中: int rowToTable = table.getSelectedRow(); int bookId = (int)table.getValueAt(rowToTable,
有没有一种方法可以从完整的 AbstractTableModel 派生出经过修剪的 AbstractTableModel 而无需 getValueAt() 复杂性? 我的完整数据(包括 userIds
我正在尝试制作一个程序,使用 AbstractTableModel 显示临时文件夹中的所有文件,但如何编写 getValueAt() 方法的代码。文件名应位于第一列,文件路径应位于第二列。我暂时将其取
我需要有关 getValue 方法的帮助 我从文件中读取并将值存储在 public List students; 现在我想将所有这些值添加到我的 JTable @Override publ
我有一个带有四个卡片面板的 Java 应用程序。在第一个面板中,我接收第一个地理点的数据,在第二个和第三个地理点中接收其他两个点的数据,在第四个面板中,我有一个 JTable 显示有关这三个点的提取信
本文整理了Java中com.tc.admin.common.XObjectTableModel.getValueAt()方法的一些代码示例,展示了XObjectTableModel.getValueA
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 7 年前。 我无法理解为什么这段代码不起作用
如何隐藏 JTable 中的列,以便仍然可以使用 tableModel.getValueAt(row,colHidden) 访问它们? 我这样做了,但后来我无法使用tableModel.getValu
我是一名优秀的程序员,十分优秀!