使用ODFDOM的Java GUI需要帮助
好的,作为一个小的个人编程项目,我在过去一直在尝试制作一个程序(通过GUI)来记录游戏中某些物品掉落的数据(如果你好奇的话,《激战2》)。GUI非常简单:使用ODFDOM的Java GUI需要帮助,java,swing,odftoolkit,odfdom,Java,Swing,Odftoolkit,Odfdom,好的,作为一个小的个人编程项目,我在过去一直在尝试制作一个程序(通过GUI)来记录游戏中某些物品掉落的数据(如果你好奇的话,《激战2》)。GUI非常简单:JFrame包含两个jlabel和JTextFields,用于说明输入内容以及要输入的文本字段。基本的图形用户界面。输入为项目名称和金额。此外,还有两个jbutton,每个侦听器用于添加项和减去项,最后还有一个JLabel用于显示错误消息 项目与所获得金额的“映射”结构在java程序执行期间存储在TreeMap中 我一直在创建一个粗糙的、基本的
JFrame
包含两个jlabel
和JTextFields
,用于说明输入内容以及要输入的文本字段。基本的图形用户界面。输入为项目名称和金额。此外,还有两个jbutton
,每个侦听器用于添加项和减去项,最后还有一个JLabel
用于显示错误消息
项目与所获得金额的“映射”结构在java程序执行期间存储在TreeMap
中
我一直在创建一个粗糙的、基本的实现,将数据保存到一个.csv文件中的内存中,但昨晚我决定重新设计这个系统。因此,我想尝试“编写”一个电子表格格式,我想,“为什么不使用OpenOffice呢?因此,我发现了ODFToolkit API等,特别是ODFDOM工具,我当然很感兴趣。所以我认为我已经对这些东西进行了重构(如果这是正确的术语的话)很好,事情会进展顺利,但……我的问题是:
因此,在GUI中,我输入了一些测试输入;“腐烂的鸡蛋”是一个有效项(无效者在窗口中显示错误),我输入了一些正整数(可能只有有效的“数量”类型)对于获得的数量。现在,我第一次这样做时,使用像这样的有效输入可以很好地工作,但是如果我使用不同的输入或相同的输入重试,它会显示错误文本,只有在输入无效项时才会显示。我尝试了一些事情,至少通过查看来调试它,但我不知道这个可怕的错误是如何产生的甚至创造了
我将在这里链接到我自己的两个类的pastebin:GUI类:
其他类,即
映射
结构和其他在GUI后面运行的东西:唉,我最终找到了答案。我在写入电子表格的方法中有一个循环
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”是一个迭代器变量)是一个致命的错误……这是我过去查找有关如何使用迭代器的内容时复制粘贴的一个不幸的残余…:/确实是导致这种可怕的“只工作一次”的原因“一种虫子。我想我真的需要确保当我将别人的代码片段粘贴到我的工作中时,我没有使用错误或不必要的东西