Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> row для JTable, Не получается вставить!!! 
:(
    Опции темы
XClan
Дата 26.11.2004, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



Что-то не могу вставить строку в таблицу! ( примерный код выглядит так... )
Где я не так прописал??

Код

import javax.swing.table.*;

public class pay_table_PAT {
   DefaultTableModel dm;
   
   public pay_table_PAT() {
       ......
       jScrollPane7 = new javax.swing.JScrollPane();
       dm = new DefaultTableModel();
       SysTable = new JTable( dm ) {
           protected JTableHeader createDefaultTableHeader() {
               return new GroupableTableHeader(columnModel);
           }
       };
       ......
       
       SysTable.setModel(new javax.swing.table.DefaultTableModel(
           new Object [][] {
               {null, null, null, null}
           },
           new String [] {
               "", "", "", ""
           }
       ) {
           Class[] types = new Class [] {
               java.lang.String.class, java.lang.String.class, java.lang.Integer.class, java.lang.Integer.class
           };
           boolean[] canEdit = new boolean [] {
               false, false, false, false
           };

           public Class getColumnClass(int columnIndex) {
               return types [columnIndex];
           }

           public boolean isCellEditable(int rowIndex, int columnIndex) {
               return canEdit [columnIndex];
           }
       });
       TableColumnModel cr = SysTable.getColumnModel();
       cr.getColumn(0).setMaxWidth(160);
       cr.getColumn(1).setMaxWidth(168);
       cr.getColumn(2).setMaxWidth(72);
       cr.getColumn(3).setMaxWidth(52);
       jScrollPane7.setViewportView(SysTable);
       .....
   }
   
   private void AddParamsDevTableActionPerformed(java.awt.event.ActionEvent evt) {
       String SPN = new String(paramSysField.getText());
       String OidF = new String(oidSysField.getText());
       Integer catTo = new Integer(CatSysCombo.getSelectedIndex());
       Integer typeTo = new Integer(TypeSysCombo.getSelectedIndex());
       PrSnmpParam par = new PrSnmpParam(OidF, typeTo.intValue(), catTo.intValue());
       currentDev.put(SPN, par);
       Object [][] row = new Object[4][];
       row[0] = SPN;                    // Компилятор грит, что тут ошибка
       row[1] = par.getOid();           //тут тоже
       row[2] = par.getOIDCategory();   //и здесь
       row[3] = par.getType();          //А также тут
       dm.addRow(row);
       SysTable.repaint();
   }
   .....
   
   private javax.swing.JScrollPane jScrollPane7;    
   private javax.swing.JTable SysTable;
   .....
}


Сами ошибки выглядят так!!!
Код

PrGui/pay_table_PAT.java [1 412:1] incompatible types
found   : java.lang.String
required: java.lang.Object[]
       row[0] = SPN;
                ^
PrGui/pay_table_PAT [1 413:1] incompatible types
found   : java.lang.String
required: java.lang.Object[]
       row[1] = par.getOid();
                          ^
PrGui/pay_table_PAT.java [1 414:1] incompatible types
found   : int
required: java.lang.Object[]
       row[2] = par.getOIDCategory();
                                  ^
PrGui/pay_table_PAT.java [1 415:1] incompatible types
found   : int
required: java.lang.Object[]
       row[3] = par.getType();
                           ^
4 errors
Errors compiling pay_table_PAT.




--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
AntonSaburov
Дата 26.11.2004, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 10
Всего: 118



Так у тебя row имеет размерность 2. А ты присваиваешь

row[0] = SPN;

Надо хотя бы что-то вроде

row[0][0] = SPN;

Также Object [][] row = new Object[4][];

У тебя массив массивов создан. Но надо же и остальное доделать.
PM MAIL WWW ICQ   Вверх
Domestic Cat
Дата 26.11.2004, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Цитата
Object [][] row = new Object[4][];
        row[0] = SPN;                    // Компилятор грит, что тут ошибка
        row[1] = par.getOid();           //тут тоже
        row[2] = par.getOIDCategory();   //и здесь
        row[3] = par.getType();          //А также тут


ты объявил двумерный массиv Object[4][], а обращаешся к нему как к одномерному: row[0] = SPN;
При твоей декларации массива должно быть что-то вроде

Код

Object[][] row = new Object[4][];
row[0] = new Object[] {"SPN", "S2132132", "Category", "Type" };
row[1] = new Object[] {"SPN2", "S2134342", "Category", "Type" };
//...



--------------------

PM   Вверх
XClan
Дата 29.11.2004, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



Мдя! компилятор больше не ворчит! Но не добавляется!!!
Пробовал и так
Код

row[0] = new Object[]{SPN.toString(),par.getOid().toString(),new Integer(par.getOIDCategory()), new Integer(par.getType())};


и так тоже
Код

       row[0][0] = SPN.toString();
       row[1][0] = par.getOid();
       row[2][0] = new Integer(par.getOIDCategory());
       row[3][0] = new Integer(par.getType());


Ни в одном из них не произошло добавление в таблицу! ,((


--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
XClan
Дата 29.11.2004, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



Проверка:
Код

System.out.println("ROW TEST PRINT : " + row[0]);

Показала запись...
Код

ROW TEST PRINT : [Ljava.lang.Object;@15a07bf


И все! и не добавляется....


--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
Domestic Cat
Дата 29.11.2004, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Цитата
SysTable = new JTable( dm ) {
            protected JTableHeader createDefaultTableHeader() {
                return new GroupableTableHeader(columnModel);
            }
        };
        ......
        
        SysTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null}
            },
            new String [] {
                "", "", "", ""
            }


Ты установил таблице одну модель (dm), затем заменил ее своей ( SysTable.setModel(new javax.swing.table.DefaultTableModel() ). А добавляешь строку v dm...


--------------------

PM   Вверх
XClan
Дата 29.11.2004, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



Я просто не знаю как это убрать в визуальном редакторе....
Он автоматом добавляется к коду...


--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
Domestic Cat
Дата 29.11.2004, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Кto добавляется? smile


--------------------

PM   Вверх
XClan
Дата 29.11.2004, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



Он smile
Код

SysTable.setModel(new javax.swing.table.DefaultTableModel(
           new Object [][] {
               {null, null, null, null}
           },
           new String [] {
               "", "", "", ""
           }



--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
Domestic Cat
Дата 29.11.2004, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



Наверняка можно где-тo указать какую модель ты цепляешь к тейблу, оно и не будет добавляься smile
На первый случай допиши перед TableColumnModel cr = SysTable.getColumnModel();
Код

SysTable.setModel(dm);



--------------------

PM   Вверх
XClan
Дата 29.11.2004, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



Попробовал..
Терь при запуске интерфейс крохается...
Код

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0

Ссылается на эту строчку cr.getColumn(0).setMaxWidth(160); перед  TableColumnModel cr = SysTable.getColumnModel();



--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
Domestic Cat
Дата 29.11.2004, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172



ты бы вообще эту dm убрал... делай просто JTable(), a вместо dm.addRow(row);
пиши SysTable.getModel().addRow(row);



--------------------

PM   Вверх
XClan
Дата 29.11.2004, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



У меня почему то SysTable.getModel().addRow(row); не сможет компилироваться..
Дело в том , что редактор далее чем SysTable.getModel(). не видит addRow...
А при комптлдяции выдает
Код

symbol  : method addRow (java.lang.Object[][])
location: interface javax.swing.table.TableModel
        SysTable.getModel().addRow(row);



--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
Domestic Cat
Дата 29.11.2004, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 13
Всего: 172




Ну так сделай чтоб увидел :
Код

((DefaultTableModel)SysTable.getModel()).addRow(row);



--------------------

PM   Вверх
XClan
Дата 1.12.2004, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 14.10.2003
Где: Планета Сириус

Репутация: нет
Всего: 3



Заработала... УРЯА-а-а
Добавляет.. но не то что вводил, а ввиде массива
То есть чтобы было видно допустим ввиденное имя в поле paramSysField, где .getText() забирает "Test203"
А дабавляется в столбец не "Test203" , а [[Ljava.lang.Object;@60b407 %( Вот такие вот пироги..
smile


--------------------
rm -rf /bin/laden
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.1075 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.