问题标签 [abstracttablemodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1597 浏览

java - 在非 AWT 线程中更新 AbstractTableModel 中的数据的最佳实践

我已经分类AbstractTableModel用作我的模型JTable。每当添加数据时,我都会fireTableRowsInserted()在 AWT 线程中调用。通过使用同步方法,对我的底层容器的所有访问都是线程安全的。

到目前为止,这种模式对我来说效果很好。但是现在我想从列表中删除数据,我意识到我有一个线程问题。如果我删除一行并fireTableRowsDeleted()在 AWT 线程中调用,我仍然可以调用getValueAt()一个现在不再存在的行索引。

在 AWT 线程之外对表模型执行操作的最佳实践是什么?

0 投票
1 回答
950 浏览

java - 使用 TreeMap 的 AbstractTableModel作为后盾如何实现 insertRow()

我有一个表模型,我正在尝试实现 insertRow 功能。最终,我希望能够从顶部向表格中添加行,这样您就不需要在每次想要查看新添加的行时向下滚动。我很难弄清楚如何实现这一点。我认为地图不会非常有效,因为每次我在位置 0 添加新行时,其他所有内容都需要增加 1。因此,每次添加行时,我都需要将所有内容向下推一. 这似乎一旦一张桌子变大,它就会变得非常昂贵。向底部添加值时,您只需更新该行即可。所以,我的问题是为 AbstractTableModel 实现这一点的最有效方法是什么?

0 投票
6 回答
19305 浏览

java - 将列添加到退出 TableModel

我有课;

使用 ResultSetMetaData 我构建了 TableModel 以匹配数据库中的结果集。

B 类中,我扩展了 JPanel 并添加了A 类来显示我的表格。我希望能够根据条件向表模型添加新列。我试过用谷歌搜索,但显示的大多数示例都是基于DefaultTableModelnot AbstractTableModel

有谁知道如何实现这一目标?

0 投票
5 回答
2144 浏览

java - ArrayIndexOutOfBoundsException:在 JTable 创建/表更改时为 -1

我已经阅读了所有看起来好像可以解决我的问题的线程,并且我也已经阅读了这里的所有答案,但我仍然无能为力。我不确定为什么会抛出异常,尽管我觉得这可能与threading. 如果是这样,请让我知道在哪里包含new Runnable()以及是否包含invokeLater()invokeAndWait(),因为我尝试过无济于事。

请耐心等待我给你导致异常的代码+堆栈跟踪(下)。

编辑:我在调用之前的部分中包含了一些sysos并且它们没有显示在控制台中,因此我认为问题必须在应用程序到达该点之前发生,即当它被调用时或当数据和表模型被实例化时......AnnoTabletableChangedAAView

编辑二:问题是被覆盖的tableChanged方法。这显然会引发异常。我也删除了tableChanged()电话(这不会产生影响)。现在我遇到了另一个问题:了解基础数据 ( AnnoData) 的更改如何自动更新表。虽然这可能是另一个查询(在扩展的 Google 搜索之后),但请随时在此线程中发布有用的评论,因为我会继续阅读它......非常感谢所有有用的评论和提示!

编辑三:*我已经解决了这个问题。我需要从 实例化另一个对象AnnoData,将其传递给 的新实例AnnoTableModel,将此实例设置为我的表,然后fireTableDataChanged()

编辑四:好的,所以fireTableDataChanged()(如编辑三中所用)毕竟是不必要的。我仍然想使用它而不是一直创建新对象。我想我应该问一个新问题......谢谢!

此方法AAView应该创建一个扩展 a 的对象JTable,将其放入 aJScrollPane等(后者确实有效)。

这是类AnnoTableaameth是一个包含访问数据模型的业务逻辑的实例对象,工作正常)。

如果您需要AnnoTableModel()(这是一个相当通用的扩展AbstractTableModel)或AnnoData(构造一个Vector包含三个Vector<Object>和一个String[]列标题的)的源代码,请告诉我。

这是堆栈跟踪。

我可以EDT在那里看到,所以从我了解到的情况来看,这可能真的是线程问题。但是,我不知道如何找出我应该在哪里开始一个新的Thread(或调用new Runnable().

AnnoTable附带说明一下,异常仅在我更改为扩展时才开始出现,JTable而不是JPanel. 最初,我AnnoTable不仅构建了表格,还将其包装在滚动窗格中并将其添加到新的JPanel. 但是因为我想fireTableDataChanged从一个只知道的类AAView(它也有一个setAnnoTable()方法)我想以正确的方式来做,而之前它工作得很好。墨菲定律?

0 投票
1 回答
643 浏览

java - Java AbstractTableModel repaint();

我的表模型中有一个问题,无法更新我在其中打印的数据。

我有作为表模型的 AgendaTableModel 类,以及作为主 UI 的类 Screen,当我按下按钮“Listar Contatos”时,表模型应该出现在 JFrame 中心的 JScrollPane 上,但它仍然是空白的。

应该是什么问题?

0 投票
1 回答
3082 浏览

java - JTable 不显示

在我的应用程序中,一切都是分布式的。

  • 在一个动作上,应用程序从数据库中检索数据并保存在ArrayList<T>.
  • 我创建了一个RelativeTableModel我通过ArrayList<T>.

    • 我有一堂课,BrowseListPanel里面有JTable. JScrollPane它的实例已经在主应用程序中创建。
    • 我将模型传递给BrowseListPanel并最终显示面板。

代码:

但我没有看到Table. 我相信由于BrowseListPanel(包含JTable)的对象已经创建并且稍后TableModel添加了。所以应该触发某种事件setTModel()

我对吗?如果是这样,应该抛出什么事件以及它的实现应该是什么。

0 投票
2 回答
981 浏览

java - Swing:用于多个对象的单个 AbstractTableModel ??

我有不同的对象,用于将数据库中的数据存储在ArrayList<T>. 我必须在表格中显示每个记录。我使用AbstractTableModel第一个对象正在处理。该类AbstractTableModel有一个ArrayList<Relation>和一个String[]的标题。

我的问题是:如何创建AbstractTableModel可用于所有对象的相同对象。我的意思是,如果使用 Relation,我可以拥有ArrayList<Relation>,如果使用 Product,则可以拥有ArrayList<Product>..etc。在我看来,为每个人写不同AbstrastTableModel的东西并不是一个好主意。主要问题是setValueAt, getValue, addRow....

任何将其作为适用于所有人的单一模型的好主意。并且还可以从这里为表触发事件。

我知道这有点复杂。但是结构很大,为每个对象创建新的类AbstractTableModel也不JTable是一个好主意。

你有什么建议?

0 投票
2 回答
6413 浏览

swing - 在 JTable AbstractDataModel 中一次删除多行

我遇到了 Jtable 和我的 dataModel 的问题。我的表模型扩展了 AbstracttableModel,数据存储在 Vector 中。我有一个功能,女巫应该删除一行或多行。这些行不一定是连续的,因为我的 jtable 将 selectionMode 设置为:

删除行的功能(一一):

当我启动该功能时,我执行循环没有问题,在逐步模式下,我可以看到更新的 vData 对象,如果我只执行一次,则 GUI 没有问题。当我选择多行时出现问题。例如,我在表中选择了第 0 行和第 1 行,并启动了函数 removeMessageRow,在第一次执行时,vDataObject 被正确更新(所有数据都被转移,并且这个向量的最后一个元素被设置为 null拨电至vData.remove(m). 因此,在我的情况下,我希望在第二次执行时,要查找的对象应该位于位置 0,但它位于位置 1,因为 vData 对象从未更新过。有人对此有想法吗?我已经尝试过很多着火的东西......但没有人可以立即执行。感谢您提前提供的任何帮助,并对我的莎士比亚语言感到抱歉。

0 投票
1 回答
1215 浏览

java - JTable 多久调用一次 getValueAt()?

我的JTable多久从 AbstractTableModel调用getValueAt() ?

如果我在getValueAt()中进行大计算(例如,计算多项式的值),这是否正常?我应该将多项式的值存储在数组中并从中返回吗?

0 投票
1 回答
538 浏览

java - 数据库数据不填入 JTable

我已经在这段代码上工作了几天。我在数据库上的过程工作正常,但它没有填充到表中。我一遍又一遍地查看代码,但找不到问题所在...我得到的错误是:JavaNullPointerException 并且涉及的行是返回的代码段notes.length。这是我的一段代码: