问题标签 [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.
java - 在非 AWT 线程中更新 AbstractTableModel 中的数据的最佳实践
我已经分类AbstractTableModel
用作我的模型JTable
。每当添加数据时,我都会fireTableRowsInserted()
在 AWT 线程中调用。通过使用同步方法,对我的底层容器的所有访问都是线程安全的。
到目前为止,这种模式对我来说效果很好。但是现在我想从列表中删除数据,我意识到我有一个线程问题。如果我删除一行并fireTableRowsDeleted()
在 AWT 线程中调用,我仍然可以调用getValueAt()
一个现在不再存在的行索引。
在 AWT 线程之外对表模型执行操作的最佳实践是什么?
java - 使用 TreeMap 的 AbstractTableModel作为后盾如何实现 insertRow()
我有一个表模型,我正在尝试实现 insertRow 功能。最终,我希望能够从顶部向表格中添加行,这样您就不需要在每次想要查看新添加的行时向下滚动。我很难弄清楚如何实现这一点。我认为地图不会非常有效,因为每次我在位置 0 添加新行时,其他所有内容都需要增加 1。因此,每次添加行时,我都需要将所有内容向下推一. 这似乎一旦一张桌子变大,它就会变得非常昂贵。向底部添加值时,您只需更新该行即可。所以,我的问题是为 AbstractTableModel 实现这一点的最有效方法是什么?
java - 将列添加到退出 TableModel
我有课;
使用 ResultSetMetaData 我构建了 TableModel 以匹配数据库中的结果集。
在B 类中,我扩展了 JPanel 并添加了A 类来显示我的表格。我希望能够根据条件向表模型添加新列。我试过用谷歌搜索,但显示的大多数示例都是基于DefaultTableModel
not AbstractTableModel
。
有谁知道如何实现这一目标?
java - ArrayIndexOutOfBoundsException:在 JTable 创建/表更改时为 -1
我已经阅读了所有看起来好像可以解决我的问题的线程,并且我也已经阅读了这里的所有答案,但我仍然无能为力。我不确定为什么会抛出异常,尽管我觉得这可能与threading
. 如果是这样,请让我知道在哪里包含new Runnable()
以及是否包含invokeLater()
或invokeAndWait()
,因为我尝试过无济于事。
请耐心等待我给你导致异常的代码+堆栈跟踪(下)。
编辑:我在调用之前的部分中包含了一些syso
s并且它们没有显示在控制台中,因此我认为问题必须在应用程序到达该点之前发生,即当它被调用时或当数据和表模型被实例化时......AnnoTable
tableChanged
AAView
编辑二:问题是被覆盖的tableChanged
方法。这显然会引发异常。我也删除了tableChanged()
电话(这不会产生影响)。现在我遇到了另一个问题:了解基础数据 ( AnnoData
) 的更改如何自动更新表。虽然这可能是另一个查询(在扩展的 Google 搜索之后),但请随时在此线程中发布有用的评论,因为我会继续阅读它......非常感谢所有有用的评论和提示!
编辑三:*我已经解决了这个问题。我需要从 实例化另一个对象AnnoData
,将其传递给 的新实例AnnoTableModel
,将此实例设置为我的表,然后fireTableDataChanged()
。
编辑四:好的,所以fireTableDataChanged()
(如编辑三中所用)毕竟是不必要的。我仍然想使用它而不是一直创建新对象。我想我应该问一个新问题......谢谢!
此方法AAView
应该创建一个扩展 a 的对象JTable
,将其放入 aJScrollPane
等(后者确实有效)。
这是类AnnoTable
(aameth
是一个包含访问数据模型的业务逻辑的实例对象,工作正常)。
如果您需要AnnoTableModel()
(这是一个相当通用的扩展AbstractTableModel
)或AnnoData
(构造一个Vector
包含三个Vector<Object>
和一个String[]
列标题的)的源代码,请告诉我。
这是堆栈跟踪。
我可以EDT
在那里看到,所以从我了解到的情况来看,这可能真的是线程问题。但是,我不知道如何找出我应该在哪里开始一个新的Thread
(或调用new Runnable()
.
AnnoTable
附带说明一下,异常仅在我更改为扩展时才开始出现,JTable
而不是JPanel
. 最初,我AnnoTable
不仅构建了表格,还将其包装在滚动窗格中并将其添加到新的JPanel
. 但是因为我想fireTableDataChanged
从一个只知道的类AAView
(它也有一个setAnnoTable()
方法)我想以正确的方式来做,而之前它工作得很好。墨菲定律?
java - Java AbstractTableModel repaint();
我的表模型中有一个问题,无法更新我在其中打印的数据。
我有作为表模型的 AgendaTableModel 类,以及作为主 UI 的类 Screen,当我按下按钮“Listar Contatos”时,表模型应该出现在 JFrame 中心的 JScrollPane 上,但它仍然是空白的。
应该是什么问题?
java - JTable 不显示
在我的应用程序中,一切都是分布式的。
- 在一个动作上,应用程序从数据库中检索数据并保存在
ArrayList<T>
. 我创建了一个
RelativeTableModel
我通过ArrayList<T>
.- 我有一堂课,
BrowseListPanel
里面有JTable
.JScrollPane
它的实例已经在主应用程序中创建。 - 我将模型传递给
BrowseListPanel
并最终显示面板。
- 我有一堂课,
代码:
但我没有看到Table
. 我相信由于BrowseListPanel
(包含JTable
)的对象已经创建并且稍后TableModel
添加了。所以应该触发某种事件setTModel()
。
我对吗?如果是这样,应该抛出什么事件以及它的实现应该是什么。
java - Swing:用于多个对象的单个 AbstractTableModel ??
我有不同的对象,用于将数据库中的数据存储在ArrayList<T>
. 我必须在表格中显示每个记录。我使用AbstractTableModel
第一个对象正在处理。该类AbstractTableModel
有一个ArrayList<Relation>
和一个String[]
的标题。
我的问题是:如何创建AbstractTableModel
可用于所有对象的相同对象。我的意思是,如果使用 Relation,我可以拥有ArrayList<Relation>
,如果使用 Product,则可以拥有ArrayList<Product>
..etc。在我看来,为每个人写不同AbstrastTableModel
的东西并不是一个好主意。主要问题是setValueAt
, getValue
, addRow
....
任何将其作为适用于所有人的单一模型的好主意。并且还可以从这里为表触发事件。
我知道这有点复杂。但是结构很大,为每个对象创建新的类AbstractTableModel
也不JTable
是一个好主意。
你有什么建议?
swing - 在 JTable AbstractDataModel 中一次删除多行
我遇到了 Jtable 和我的 dataModel 的问题。我的表模型扩展了 AbstracttableModel,数据存储在 Vector 中。我有一个功能,女巫应该删除一行或多行。这些行不一定是连续的,因为我的 jtable 将 selectionMode 设置为:
删除行的功能(一一):
当我启动该功能时,我执行循环没有问题,在逐步模式下,我可以看到更新的 vData 对象,如果我只执行一次,则 GUI 没有问题。当我选择多行时出现问题。例如,我在表中选择了第 0 行和第 1 行,并启动了函数 removeMessageRow,在第一次执行时,vDataObject 被正确更新(所有数据都被转移,并且这个向量的最后一个元素被设置为 null拨电至vData.remove(m)
. 因此,在我的情况下,我希望在第二次执行时,要查找的对象应该位于位置 0,但它位于位置 1,因为 vData 对象从未更新过。有人对此有想法吗?我已经尝试过很多着火的东西......但没有人可以立即执行。感谢您提前提供的任何帮助,并对我的莎士比亚语言感到抱歉。
java - JTable 多久调用一次 getValueAt()?
我的JTable多久从 AbstractTableModel调用getValueAt() ?
如果我在getValueAt()中进行大计算(例如,计算多项式的值),这是否正常?我应该将多项式的值存储在数组中并从中返回吗?
java - 数据库数据不填入 JTable
我已经在这段代码上工作了几天。我在数据库上的过程工作正常,但它没有填充到表中。我一遍又一遍地查看代码,但找不到问题所在...我得到的错误是:JavaNullPointerException 并且涉及的行是返回的代码段notes.length
。这是我的一段代码: