Java GUI 与 ODFDOM 配合使用需要帮助



好的,作为一个小小的个人编程项目,我过去一直在尝试制作一个程序,该程序(通过GUI(用于记录游戏中某些东西掉落的物品数据(如果你好奇的话,可以参加激战2(。GUI非常简单:JFrame包含两个JLabelsJTextFields,说出要输入的内容以及要键入的文本字段。基本的图形用户界面的东西。输入是项目名称和金额。此外,还有两个JButtons,每个侦听器用于添加项目和减去项目,最后另一个JLabel用作错误消息显示。

项目与获得数量的"映射"的结构存储在 java 程序执行期间TreeMap中。

我一直在创建一个粗略的基本实现,将数据保存在.csv文件中的内存中,但我昨晚决定要重新设计系统。因此,我有了尝试"写入"电子表格格式的想法,我想,"为什么不OpenOffice呢?因此,我发现了ODFToolkit API等,特别是ODFDOM工具当然引起了我的兴趣。所以我认为我已经重构了这些东西(如果这是正确的术语(足够好,事情会顺利进行,但是......这是我的问题:

因此,在GUI中,我键入了一些测试输入;"臭鸡蛋"是一个有效的项目(无效者在窗口中显示错误(,我为获得的金额输入了一些正整数(可能只有有效"金额"的类型(。现在,我第一次这样做时,使用这样的有效输入它可以正常工作,但是如果我再次尝试使用不同的输入或相同的输入,它会显示错误文本,该文本仅在输入无效项目时才应显示。我至少尝试了一些东西来调试它,但我对这个可怕的错误是如何创建的感到茫然。

我将在这里为我自己的两个类链接到 pastebin:
图形用户界面类:http://pastebin.com/rEbFS27j
其他类,即 Map 结构和 GUI "后面"进行的其他东西:http://pastebin.com/BWA4SUY0

叹了口气,我最终想通了。我在写入电子表格的方法中有这个循环。

while (it.hasNext() == true) {
            Map.Entry pairs = (Map.Entry)it.next();
            odt.getTableList().get(0).getCellByPosition("A" + i).setDisplayText((String) pairs.getKey()) ;
            odt.getTableList().get(0).getCellByPosition("B" + i).setDisplayText((pairs.getValue().toString())) ;
            it.remove(); // avoids a ConcurrentModificationException
            i++ ;
            }

it.remove()("it"是一个迭代器变量(是一个致命错误......当我过去查找有关如何使用迭代器的内容时,复制粘贴的不幸残余...... :/事实上,这是这种可怕的"只工作一次"错误的原因。猜猜我真的需要确保当我将别人的代码片段粘贴到我的作品中时我没有使用错误或不必要的东西......

最新更新