gpt4 book ai didi

java - 将行/单元添加到 JTable

转载 作者:行者123 更新时间:2023-12-01 23:12:21 26 4
gpt4 key购买 nike

所以基本上我有一个 JTable 和一个 DefaultTableModel d,我使用 d.addColumn() 方法向其中添加了 5 列。问题是,我不太明白如何向 JTable 添加行,我已经尝试了使用 setValueAt 以及以下方法的所有方法:

d.addRow(new Object[] { <myArrayListWithCells>.get(i) }); 

^ 其作用基本上是将数组中的所有单元格添加到第一列下方。那么我该如何制作才能将单元格实际放置在正确列下的正确位置呢?我尝试在列中使用嵌套的 for 循环,但它不起作用。我得到一个包含异常错误的长列表,如下所示:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Vector.java:470)
at javax.swing.table.DefaultTableModel.setValueAt(DefaultTableModel.java:665)
at ListItemListener.mouseClicked(ListItemListener.java:69)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
at java.awt.Component.processMouseEvent(Component.java:6508)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

有人可以帮忙吗?谢谢。

最佳答案

问题是,在表单加载时,您的模型包含 0 行,因此您会遇到此类异常,您需要将模型的 rowCount 设置为:

d.setRowCount(nrOfRows); //nrOfRows specified earlier in class code
<小时/>

有用的链接

DefaultTableModel

关于java - 将行/单元添加到 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21688861/

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