我正在尝试创建一个显示41000行数据的JTable,对于只有4457行需要创建的另一个JTable,我使用相同的代码也可以正常工作,因此我的问题不是来自数据。我的程序执行需要25分钟才能计算出需要在用户界面中显示的所有值。程序执行完成后,我收到以下错误消息:
"Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Vector.<init>(Unknown Source)
at java.util.Vector.<init>(Unknown Source)
at javax.swing.table.DefaultTableModel.convertToVector(Unknown Source)
at javax.swing.table.DefaultTableModel.convertToVector(Unknown Source)
at javax.swing.table.DefaultTableModel.setDataVector(Unknown Source)
at javax.swing.table.DefaultTableModel.<init>(Unknown Source)"
是否不可能创建具有41000行的JTable?太大了,无法创建JTable吗?我不认为我的程序有什么问题,因为对于具有4457行的另一个表,我使用相同的代码也可以正常工作。
答案 0 :(得分:0)
4457!= 41000 。完全取决于您的对象端。
是否不可能创建具有41000行的JTable?
这完全取决于您要渲染的对象。一个只有一个字段的对象与另一个对象不同。如评论所说,这取决于您的JVM配置,添加更多内存可以作为一种解决方案-Xmx2048m
要创建JTable的行太多吗?
相同的答案。这取决于您使用的对象的类型。如果对象太大,最好使用分页或为此采取更好的方法。