Требуется помощь с Java GUI, работающим с ODFDOM

Итак, как небольшой личный проект по программированию, в прошлом я пытался создать программу, которая (с помощью графического интерфейса пользователя) содержала бы для записи данных выпадения предметов из определенных вещей в игре (Guild Wars 2, если вам интересно), Графический интерфейс достаточно прост: JFrame содержащий два JLabels а также JTextFields, чтобы сказать, что вводить и хорошо, текстовые поля, чтобы ввести его. Основные вещи GUI. Входными данными являются название товара и сумма. Также есть два JButtonsс каждым слушателем, чтобы добавить предметы и вычесть предметы и, наконец, еще один JLabel функционировать как отображение сообщения об ошибке.

Структура "сопоставления" предметов с полученным количеством сохраняется во время выполнения Java-программы в TreeMap,

Я создавал грубую базовую реализацию, сохраняя данные в памяти в виде файла.csv, но вчера вечером решил, что хочу переработать систему. Таким образом, у меня появилась идея попытаться "записать" в формат электронной таблицы, и я подумал: "А почему бы и нет OpenOffice? Следовательно, я обнаружил ODFToolkit API и такие, особенно инструменты ODFDOM, которые, конечно, меня заинтересовали. Поэтому я подумал, что я достаточно хорошо переработал этот материал (если это правильный термин), и что все пойдет гладко, но... вот моя проблема:

Итак, в GUI я набираю тестовый ввод; "Гнилое яйцо" является действительным элементом (инвалиды делают ошибку, отображаемую в окне), и я положил некоторое положительное целое число (возможно, только тип действительного "количества") для полученной суммы. Теперь, когда я делаю это в первый раз, с таким допустимым вводом, он работает нормально, но если я попробую еще раз с другим или тем же вводом, он отобразит текст ошибки, который должен отображаться только при вводе недопустимого элемента. Я попробовал несколько вещей по крайней мере, чтобы отладить его, просматривая его, но я не знаю, как возникла эта ужасная ошибка.

Я сделаю ссылку на pastebin для моих двух классов здесь:
Класс GUI: http://pastebin.com/rEbFS27j
Другой класс т.е. Map структура и другие вещи, происходящие "за" GUI: http://pastebin.com/BWA4SUY0

1 ответ

Решение

Вздох Я понял это в конце концов. У меня есть этот цикл в методе, который пишет в электронную таблицу.

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() ("это" - переменная Iterator) - фатальная ошибка... досадный остаток от копирования-вставки, когда я в прошлом искал материал о том, как использовать итераторы...:/ Действительно, это была причина этого ужаса ошибка типа "только один раз" Думаю, мне просто нужно убедиться, что я не использую что-то неправильное или ненужное, когда вставляю фрагменты чужого кода в мою работу...

Другие вопросы по тегам