![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
Имеем
javax.swing.JTable refTbl; ... refTbl.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null}, {null, null, null, null, null} }, итд... В общем на экране есть таблица 10Х5 Далее , путем шаманских танцев с бубном вокруг сокета, получили набитый по уши Vector Каждый элемент вектора массив из 5 элементов. Вопрос: Как впихнуть в таблицу например первые 10 элементов из вектора Пытался делать что то наподобие :
получаем ошибку array required, but java.lang.Object found refTbl.setValueAt(curRow[i], k, i ); -------------------- |
|||
|
||||
| Sun |
|
|||
|
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 8 Всего: 48 |
Может дело в этом объявлении
Object curRow=new java.lang.reflect.Array[5]; Здесь curRow объявлен массивом из пяти эллементов типа Array (а не Object). А тебе нужен массив объектов а не массив массивов. Поэтому и компилятор ругается. Тебе наверно лучше использовать что-то вроде Object[] curRow = new Object[5]; Это сообщение отредактировал(а) Sun - 7.8.2003, 18:44 -------------------- Account removed |
|||
|
||||
| DarkDS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
Все делается намного проще
|
|||
|
||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
если через датамодель, то насколько я понял это будет просто пересоздание таблицы, ток уже с новыми значениями ячеек?
-------------------- |
|||
|
||||
| DarkDS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
Не обязательно... В общем погодь чутка
Это сообщение отредактировал(а) DarkDS - 7.8.2003, 18:59 |
|||
|
||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
ладно, жду
а пока тут с примерами из постваки jdk поразбираюсь... -------------------- |
|||
|
||||
| DarkDS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
Кстати... Вопрос... А не проще ли передавать Вектор, хранящий в себе какой либо класс с данными (то есть уже упорядочить данные)
Это сообщение отредактировал(а) DarkDS - 7.8.2003, 19:20 |
|||
|
||||
| DarkDS |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
Итак: Пишем небольшой класс Модели... Примерно такой:
В данном случае я воспользовался для простоты работы классом Сторедж (чтобы не работать на прямую с массивом)
Как будет происходить в данном случае работа с данными: Создается наша датамодель
Теперь в месте где получаем лист (кстати. Лудше работать с листами чем с вектором. У них скорость доступа меньше) мы можем либо добавить какое то количество строк, либо весь вектор сразу... Вот так:
Это сообщение отредактировал(а) DarkDS - 16.9.2003, 14:25 |
||||||||
|
|||||||||
| DarkDS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
Все понятно? Нужны пояснения?
ЗЫ. Сорри.. Чутка ошибся во времени пути до дому... Дела появились... Это сообщение отредактировал(а) DarkDS - 7.8.2003, 22:45 |
|||
|
||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
Да. Вопросы есть.
Код хороший, я понял его. Только зачем наследовать целый класс? Почему нельзя использовать JTable? В JTable я нашел метод, тот что мне надо: setValueAt(Object o, col, row); Он бы меня вполне устроил. Только вот, что за объект ему надо скормить для указанной ячейки? -------------------- |
|||
|
||||
| DarkDS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
Вообще то нужно скормить обычный объект... А Наследовать целый класс - для простоты работы с содержимым таблицы. Тут ты можешь и имена столбцов выставить и если нужно чтобы данные редактировались - добавить 2-а метода и все (один метод показывает - редактируемая ли ячейка, а второй изменяет значени... Причем редактируемость можешь контролировать. К примеру сделать все столбцы кроме первого редактируемыми. И с данными тоже работать можешь как угодно
Да к тому же более "кошерно" работать с моделью данных, а не с таблицей... Тем более что таблица методом setValueAt(Object o, col, row); вызывает такой же метод у модели... И через таблицу напрямую столбец не добавишь. (в данном примере достаточно убрать if ( count < 10 )count = 10; и в начале таблица будет пустой, а после заполнения ее с помощю модели буду отображатся добавленные столбцы) Это сообщение отредактировал(а) DarkDS - 8.8.2003, 10:33 |
|||
|
||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
УгУ... Однако хорошо сказано! Убедил.
Таки с меня пиво... [(_) И еше пиво... [(_) -------------------- |
|||
|
||||
| Alone |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
Кстати, а таблицу нужно лепить только на jScrollPanel? Или по барабану?
Если по барабану, то я не понял почему при добавлении таблицы на скроллпанель - имена столбцов есть, а если прилепить таблицу на JPanel, то она голая свсем... -------------------- |
|||
|
||||
| DarkDS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
Все очень просто: Когда для показа столбцов реализован такой принцип, что заголовки показываются через специальный вьюпорт. В скрол панеле этот вьюпорт есть, а в обычной панеле нет. Так что лудше всего таблицу в скроле помещать... Если не нужно чтобы прокручивалось - поставь просто у скрола опцию NO_SCROLL
|
|||
|
||||
| Alone |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 11.5.2003 Где: Dnepropetrovsk, U A Репутация: 3 Всего: 6 |
Это понятно. я уже так и сделал.
Тут в другом вопрос...
что в этом неправильного потому что таблица не появилас, а в стдаут получено:
И еще: что бы выставить ширину стлобцов так как мне надо, мне пришлось сделать это
В принципе сработало, но хотелось бы мнение... Это сообщение отредактировал(а) Alone - 8.8.2003, 15:26 -------------------- |
||||||
|
|||||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |