|
|
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Пишу программу по загрузки данных из таблицы JTable в файл Excel. На данном этапе при рисовании таблицы возникает такая ошибка: Exception in thread "main" java.lang.ClassCastException: javax.swing.JTable$1 cannot be cast to javax.swing.table.DefaultTableModel at toexcelfile.MyTableFrame.drawFrame(MyTableFrame.java:38) at toexcelfile.ToExcelFile.exportExcel(ToExcelFile.java:32) at toexcelfile.ToExcelFile.main(ToExcelFile.java:73) Вот кусок кода, связанный с таблицей: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Помогите пожалуйста! Как вставить новую строку в таблицу в режиме онлайн? Можно ли вообще реализовать эту задачу средствами языка Java? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 12:13 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7, В конструкторе JTable вам нужно передавать не массив данных, а новый экземпляр DefaultTableModel. Потому что сейчас у вас там просто реализация TableModel, которая не является DefaultTableModel. А ваши данные нужно добавить уже в DefaultTableModel. Тогда вы сможете динамически добавлять строки через методы DefaultTableModel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 12:24 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Я исправила код вот так: Код: java 1. 2. Ошибка ушла. А почему-то строка не появилась новая и даже кнопка "Добавить" тоже не отобразилась. Что дальше делать? Может быть что-то не так вот в этом блоке: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 14:12 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7Что дальше делать? Читать учебники по Swing и осваивать отладчик в IDE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 14:23 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Глобальный ответ. А конкретнее нельзя? Я уже весь интернет перерыла. В других проектах у меня получается отображать кнопки, а в этом нет почему-то. И как добавлять новую строку - это вообще возможно в Java делать как бы в онлайн режиме? Мне скажите, задача решаема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 14:52 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7Глобальный ответ. А конкретнее нельзя? Какой вопрос, такой и ответ. Конкретные вопросы будут? helga7Я уже весь интернет перерыла. А дебаггер есть? helga7В других проектах у меня получается отображать кнопки, а в этом нет почему-то. Нам предлагается угадать чем другие проекты отличаются от этого? Они не на Java? Они не на Swing? Они написаны не вами? helga7И как добавлять новую строку - это вообще возможно в Java делать как бы в онлайн режиме? Ваш фреймверк для разработки GUI приложений называется Swing, а не Java. Можно, например, попробовать прочесть документацию к тем классам, которые вы используете https://docs.oracle.com/javase/7/docs/api/javax/swing/table/DefaultTableModel.html#addRow(java.lang.Object []) Это лучше чем дергать примеры из интернетов не понимая что они вообще делают. helga7Мне скажите, задача решаема? Да. Swing отличный фреймверк, в котором можно всё. Но очень многое только через задницу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 15:06 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Например, я спрашивала: Как вставить новую строку в таблицу в режиме онлайн? Что я для этого делаю: Код: java 1. Почему это не работает? И второй вопрос: почему вот такая команда Код: java 1. не добавляет кнопку add на панель? Спасибо за ссылку - я ее посмотрела. Примеры я разбираю, а не тупо вставляю в код. Так что лучше не судить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 15:11 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7Например, я спрашивала: Как вставить новую строку в таблицу в режиме онлайн? Если страницу промотрать вверх, то можно увидеть что вы спрашивали. Тут вся история она, как бы, сохраняется. Видно кто что спрашивал и кто что отвечал. helga7Что я для этого делаю: Код: java 1. Почему это не работает? То есть отладчик нам всё ещё не даётся и будем дебажить через форум? Откуда мне знать что у вас в idx? Почему вы не используете метод add(), который более простой? Какое значение имеет поле dataVector у модели после добавления вы тоже не смотрели? Исключения есть? helga7 Код: java 1. не добавляет кнопку add на панель? Ответ зависит от версии Java. Но для актуальных версий метод добавляет кнопку. Вот только вы её не видете, патамушта helga7Спасибо за ссылку - я ее посмотрела. Примеры я разбираю, а не тупо вставляю в код. Так что лучше не судить. Я говорю что примеров не достаточно. Важно читать документацию. К каждому классу в вашем коде. А так как фреймверк для вас новый, то я бы порекомендовал ещё и официальные туториалы. Они к Swing очень клевые. Многое объясняют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2018, 15:27 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Я исправила ошибку, добавив в конце кода вот такой кусок: Код: java 1. 2. 3. 4. Теперь при нажатии на кнопку срабатывает ActionListener(). Единственное что, теперь у меня шапка таблицы перестала отображаться. Почему? Интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 10:08 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7Я исправила ошибку, добавив в конце кода вот такой кусок: Возьмите уже NetBeans WYSIWYG если вам абсолютно не интересно разбираться в LayoutManager-ах. helga7Единственное что, теперь у меня шапка таблицы перестала отображаться. Почему? Интересно. Вы так и не сообщили версию Java. Ну, да, ладно. Это старый баг. Чтобы шапка отображалась, JTable нужно поместить в JScrollPane: Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 10:12 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо, я параллельно с Вами разобралась в этой проблеме сама. Сделала тоже самое, добавила прокрутку, а не таблицу. Меня интересует вопрос, как править таблицу прямо во фрэйме? Сейчас добавляется строка программным кодом, а хотелось бы напрямую через ввод на таблице. Возможно ли это? Если да, то как? В интернете ничего нет по этому поводу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 10:27 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
Версия NetBeans IDE 8.2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 10:29 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7Сейчас добавляется строка программным кодом, а хотелось бы напрямую через ввод на таблице. Возможно ли это? Если да, то как? В интернете ничего нет по этому поводу. Вы сформулируйте какое точно событие должно произойти чтобы появилась новая строка. Трансформируйте это событие в термины Swing, напишите соответсвующего слушаетеля и вызывайте из него метод add. Например: если курсор попал на последню строку, нужно добавить следующую. Соответственно вешаем слушателя на выбор строк. Если выбрана последняя строка - добавляем новую. Если выбрана не последняя, то все пустные строки подряд начиная с нижней можно удалять. Или можно на какую-нибудь кнопку повесить добавление. Insert. Но у вас почему-то "напрямую через ввод на таблице". Через ввод чего? Данных в ячейку? Нажатия кнопки Enter? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 10:34 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7Версия NetBeans IDE 8.2. И WYSIWYG вы не используете потому что... А почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 10:34 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНо у вас почему-то "напрямую через ввод на таблице". Через ввод чего? Данных в ячейку? Нажатия кнопки Enter? Я хочу войти в ячейку таблицы и ручками ввести строку, а не программным кодом ее добавлять. Потом, к примеру, данные этой введенной строки кладутся в какую-нибудь переменную. Для начала, полагаю, должно появиться пустое поле для ввода это строки. Но как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 10:39 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
BlazkowiczИ WYSIWYG вы не используете потому что... А почему? Просто так получилось. Не принципиально. Я даже не знаю, что такое WYSIWYG. Это чем-то лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 10:40 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7Просто так получилось. Не принципиально. Я даже не знаю, что такое WYSIWYG. Это чем-то лучше? Не особо лучше, но так как вам лень разбираться в нюансах, то будет проще: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 11:09 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7Я хочу войти в ячейку таблицы и ручками ввести строку, а не программным кодом ее добавлять. Возможно тут путаница в терминологии так как и String и row это "строка"? Ввести строку таблицы нельзя. Можно ввести текст в ячейку таблицы, а можно добавить строку (ряд) к таблице. helga7Потом, к примеру, данные этой введенной строки кладутся в какую-нибудь переменную. Данные таблицы уже находятся в модели. Когда вы держите одни и те же данные в разных местах, может так получится что данные будут различатся в то время когда вы хотели чтобы они были одинаковыми. helga7Для начала, полагаю, должно появиться пустое поле для ввода это строки. Но как? Интуиция подсказывает что вопрос не про "ввод", а про "редактирование" В туториале поиском по слову edit много нужной информации https://docs.oracle.com/javase/tutorial/uiswing/components/table.html С другой стороны, возможно, интуиция меня подводит, потому как DefaultTableModel уже редактируется по-умолчанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 11:15 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
Blazkowicz а можно добавить строку (ряд) к таблице. как это сделать? Blazkowicz Интуиция подсказывает что вопрос не про "ввод", а про "редактирование" да, можно так сказать: update или insert строки прямо во фрэйме Blazkowicz В туториале поиском по слову edit много нужной информации https://docs.oracle.com/javase/tutorial/uiswing/components/table.html Спасибо за ссылку, я ее посмотрела внимательно. Не нашла ответа на свой вопрос. Наверно, лучше какой-нибудь код с примером такого редактирования посмотреть. Но ничего толкового и похожего в сети не увидела. BlazkowiczС другой стороны, возможно, интуиция меня подводит, потому как DefaultTableModel уже редактируется по-умолчанию. Похоже этим классом не обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 12:22 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7как это сделать? Мы ходим по кругу: Код: java 1. 2. helga7да, можно так сказать: update или insert строки прямо во фрэйме OMFG. Термины UI вам принципиально не даются? Редактирование данных в ячейках строки это одно, а добавление новой строки это другое. Зачем вы всё в кучу мешаете? helga7Но ничего толкового и похожего в сети не увидела. Про добавление\удаление строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 12:44 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
Ну, и, вот, почти то что вам нужно, за исключением типизации данных в таблице, если вы делаете spreadsheet, то вам бин в качестве модели строки не нужен. https://www.javalobby.org/articles/jtable/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 12:54 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо огромное за ссылки! Начала их изучать. С ходу пока такой вопрос: какую библиотеку подключать для использования конструктора new AudioRecord() и класса fireTableRowsInserted? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 13:35 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7С ходу пока такой вопрос: какую библиотеку подключать для использования конструктора new AudioRecord() и класса fireTableRowsInserted? Класс AudioRecord приведен там же по ссылке целиком и полностью. Но вам он не нужен, так как вы колонки тоже, вероятно, хотите динамические. fireTableRowsInserted это не класс а метод. Который описано в документации, которую вы продолжаете игнорировать. https://docs.oracle.com/javase/7/docs/api/javax/swing/table/AbstractTableModel.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 13:41 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
BlazkowiczКласс AudioRecord приведен там же по ссылке целиком и полностью. Но вам он не нужен, так как вы колонки тоже, вероятно, хотите динамические. Нет, колонки фиксированы. BlazkowiczfireTableRowsInserted это не класс а метод. Который описано в документации, которую вы продолжаете игнорировать. https://docs.oracle.com/javase/7/docs/api/javax/swing/table/AbstractTableModel.html Я уже пробовала подключать javax.swing.table.AbstractTableModel - не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 13:44 |
|
||
|
Добавление строки в JTable и запись в Excel
|
|||
|---|---|---|---|
|
#18+
helga7Я уже пробовала подключать javax.swing.table.AbstractTableModel - не работает. Что именно вы пробовали и как именно не работает известно только вам. DefaultTableModel является наследником AbstractTableModel. Что можно узнать из документации, если знать что такое наследование. А ещё если не ленится читать код Swing, то жизнь вообще будет полна приятных открытий: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2018, 13:49 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=49&tid=2122165]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 150ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...