| Виды программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Избавление от пробела.. Где можно почитать про *.forms JOptionPane, Как выделить слово в message жирным? Как установить иконку для нода в JTree? У кого есть инфа по SAX & DOM JTree и окна Кто-то может бин для Forms показать JTree + ImageIcon, Не получается перерисовка икон Canvas => Image, как вырезать из Canvas и превратить.. JList. Добавление элемента. Нужен Пример по XML Совмесная работа JIDEA и JBuilder X Использование смайлов, Захотелось использовать эту возможность JComBobox и его размеры? MDI-приложения на Java, как их делать? Проблема с отрисовкой фрэймов, Проблемы с отрисовкой фрэймом Как установить миним размер в JFrame, установить придел уменьшения Нажатие кнопки JFormattedTextField Как обновить менюшку Найти выражение, три точки после Как создать .exe?, создание Java-Software MouseDragged ???, Nuzna pomosh!!! O4en'!!! как сделать так чтобы Character "\n" не находился, проблема с регами... неправильно происходит редактир-е строки в JTable StatusBar, Как его создавать? FolderChooser в Swing?, Что заюзать? Как скрыть/восстановить столбец в JTable?.., Думаю, можно добавить в FAQ.. Новый исправленный вариант GUI, ("Делаем правильный... глюкнулся") Лаба по яве, Подскажите awt или swing, не появляется label Хоть кто-нибудь покажет пример? Ant, property Курсор мыши Делаем ПРАВИЛЬНЫЙ GUI Из массива на экран, чем? Как Вы относитесь к курящим девушкам? Прежде чем задать вопрос, прочтите это! Документация и книги по Java, Давайте соберём ссылки Совершенно не вьезжаю в вывод данных в JTable работа с фалом БД напрямую зачем нужен вызов Class.forName Реализация подсветки синтаксиса, в редакторе текста Ах этот Random Не могу сделать приложение с нормальным окном проблема с удалением строки из модели таблицы, при сортировке строка неудаляется помогите с YOURKIT Как нарисовать графики?, Как зделать чтобы стрелочка не маргала Что-то никак... CheckBox == Hashtable ComboBox, прошлый getSelectItem(); как использовать LookAndFeel из IntellJIDEA событие вставки текста Ищу библиотеку Как узнать какой процесс запустил java приложение jButton.setEnabled(false), продолжает обрабатывать нажатие мышой. Hashtable, получение списка Как повернуть JPanel? Eltima Visual Java/SWING Library java webstart, как изменить заголовок окна JTable + JComboBox, вывод таблицы при выборе в КомбоБоксе Нарды, надо картинки двигать по картинке Cut/Copy/Paste, вопрос JFreeReports ошибка при исп. функции проблеммы с Combobox'ом помогите плиз с regex (чегото я непоимаю) row для JTable, Не получается вставить!!! как сделать круговую диаграмму полупрозрачной и совсем маленький и простенький вопросик...:) JCalendar в JCombobox |
Платные хостинги Раскрутка сайта Книги по программированию неправильно происходит редактир-е строки в JTable
- Попал в новую яму уже с редактированием.Второй раз строка в JTable нередактируется, т.е первый раз проходит все нормально, а если попытатся этуже строку отредактировать еще раз вылетает ошибкаКод Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at mobiltrade.MainFrame.buttonEdit_actionPerformed(MainFrame.java:452) at mobiltrade.MainFrame.access$200(MainFrame.java:32)highlightSyntax('javaxNDhmO','java');Вот моя структура:БД -> MobilTableModel -> SorterTableModel -> JTableВот тут выскакивает ошибкаКод private void buttonEdit_actionPerformed(ActionEvent e) { .......... String sMobilIDEdit = sorterTableModel.getValueAt(tablePrihod.getSelectedRow(), sorterTableModel.getColumnCount() - 1).toString(); //тут sMobilIDEdit становится равным null .......... }highlightSyntax('javaMmY0MW','java');Вот тут вызывается метод редактированияКод Object[] insertTable = new Object[5];insertTable[0] = convertDateDBApp(valueData.getText());insertTable[1] = valueModel.getSelectedItem();insertTable[2] = valueImei.getText();insertTable[3] = valueProdavec.getSelectedItem();insertTable[4] = Integer.parseInt(valueCenaZakup.getText());stm.EditRow(tableRowSelect,insertTable);//где stm - это обьект SorterTableModelhighlightSyntax('javaDUyZWN','java');Вот SorterTableModelКод public class SorterTableModel extends AbstractTableModel { private Row[] rows; private MobilTableModel model; int sortColumn; public SorterTableModel(MobilTableModel m) { model = m; rows = new Row[model.getRowCount()]; for (int i = 0; i < rows.length; i++) { rows[i] = new Row(); rows[i].index = i; } } public void sort(int c) { sortColumn = c; Arrays.sort(rows); } public Object getValueAt(int r, int c) { return model.getValueAt(rows[r].index, c); } public int getRowCount() { return model.getRowCount(); } public int getColumnCount() { return model.getColumnCount(); } public String getColumnName(int c) { return model.getColumnName(c); } private class Row implements Comparable { public int index; public int compareTo(Object other) { Row otherRow = (Row) other; Object a = model.getValueAt(index, sortColumn); Object b = model.getValueAt(otherRow.index, sortColumn); if (a instanceof Comparable) { return ((Comparable) a).compareTo(b); } else { return a.toString().compareTo(b.toString()); } } } public void EditRow(int r,Object[] rowData){ model.EditRow(rows[r].index,rowData); fireTableRowsUpdated(r,r); //fireTableDataChanged(); }}highlightSyntax('javaNmY1Nz','java');Вот ModelTableModelКод public class MobilTableModel extends AbstractTableModel { int columnCount; ResultSetMetaData rsMetaData; String[] columnNameEng; Object[] row; String temp = ""; Vector rows = new Vector(); Connection conn; ResultSet rs; public MobilTableModel(Connection conn, ResultSet rs) { try { this.conn = conn; this.rs = rs; rsMetaData = rs.getMetaData(); columnCount = rsMetaData.getColumnCount(); columnNameEng = new String[columnCount]; for (int i = 1; i < columnCount + 1; i++) { columnNameEng[i - 1] = rsMetaData.getColumnName(i).trim(); } while (rs.next()) { row = new Object[columnCount]; for (int y = 1; y < columnCount + 1; y++) { String colType = rsMetaData.getColumnTypeName(y); if (colType.equals("INTEGER")) { row[y - 1] = new Integer(rs.getInt(y)); } else { if (colType.equals("DATETIME")) { row[y - 1] = rs.getDate(y); } else { row[y - 1] = rs.getString(y); } } } rows.addElement(row); } } catch (SQLException sqle2) { } catch (NullPointerException npe) { } } public int getRowCount() { return rows.size(); } public int getColumnCount() { return columnCount; } public String getColumnName(int column) { return (columnNameEng[column]); } public Object[] getRow(int index) { return ((Object[]) rows.elementAt(index)); } public Object getValueAt(int row, int column) { return ((Object[]) rows.elementAt(row))[column]; } public void EditRow(int row, Object[] rowData){ rows.setElementAt(rowData,row); fireTableRowsUpdated(row,row); //fireTableDataChanged(); }}highlightSyntax('javaMDVhMD','java'); - То есть, подряд нажать кнопку редактирования? Кстати проверяй, выделен ли ряд в таблице, иначе getSelectedRow вернет -1 и будет нехорошо. - У меня по нажатию кнопки Edit выскакивает окно в котором я редактирую данные, там есть кнопка ок. После нажатия которой это окно закрывается и мы возвращаемся в главное окно, там где находится таблица(уже с изменениями).Вот если уже отредактированную строку попробывать опять по кнопке Edit отредактировать, то при нажатии кнопки Edit окно редактирования непоявляется, а выскакивает эта ошибка.Я так понимаю что тут неможет получить значение.String sMobilIDEdit = sorterTableModel.getValueAt(tablePrihod.getSelectedRow(), sorterTableModel.getColumnCount() - 1).toString(); //второй раз вместо значения sMobilIDEdit = null - Проверку на выделение ряда я делаю.Тут даже если написать такКод sMobilIDEdit = sorterTableModel.getValueAt(0,5).toString(); highlightSyntax('javaTcyMzh','java');все равно ошибку выбрасывает - Код Object[] insertTable = new Object[5];insertTable[0] = convertDateDBApp(valueData.getText());insertTable[1] = valueModel.getSelectedItem();insertTable[2] = valueImei.getText();insertTable[3] = valueProdavec.getSelectedItem();insertTable[4] = Integer.parseInt(valueCenaZakup.getText());stm.EditRow(tableRowSelect,insertTable);highlightSyntax('javaMWZiYj','java');Т.е. столбцов - 5, индекс последнего - 4. Вполне естественно, что Код getValueAt(0,5)highlightSyntax('javaiNjNkY','java');не сработаетМожет, изначально у тебя 6 столбцов, а ты после редактирования делаешь их число равным 5 в редактированной строке? Это сообщение отредактировал igon - 9.1.2005, 17:30 - Там бедь стоит sorterTableModel.getColumnCount() - 1, должно работать.; а вот Цитата (Adept @ 9.1.2005, 03:16)sMobilIDEdit = sorterTableModel.getValueAt(0,5).toString();даст ошибку.Попробуй выводить значения всех параметров для sMobilIDEdit в консоль, посмотри чем они отличаются. - sorterTableModel.getColumnCount(), возможно, возвращает 6.Adept совершенно правильно (вручную) отнимает 1, получает 5 и ...получает ошибку - Тут без него не выяснишь - А пока Adept отдыхает, у меня oftop предлжение - может, предложить вопрошающим (в рубрике "Прежде чем") постить минимальное приложение(2-3 урезанных донельзя классов), в которых, тем не менее, возникает волнующая их ошибка. Тогда мы могли бы просто пробежаться по нему debug'ом, особо не теряясь в догадках, как сейчас, например - И кому будет охота урезать классы - Тогда пусть ждут, пока догадаемся Хотя декомпозиция - один из основных методов отладки сколько-нибудь сложных программ. И как можно без него обойтись - я, например, не представляю. Разве что постить вопрос после первой неудачной компиляции - В SorterTableModel у меня находится все 6 столбцов.6-й столбец (mobil_id)В JTable я вывожу 5 столбцов (все кроме 6-го)................................все понял блин моя невнимательностьспасибо люди навели на ошибку я недобавил значение последнего столбцаinsertTable[5] = "0"; Добавлено @ 10:39 точнее не insertTable[5] = "0";а insertTable[5] = "нужное значение";Еще раз спасибо за помощь |