powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Отображение изменений в JTable
18 сообщений из 18, страница 1 из 1
Отображение изменений в JTable
    #33515965
avart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал редактируемую таблицу
вствил метод
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 public   void  setValueAt(Object value,  int  row,  int  column)
	{
           try 
	    {
	    	 if  (value  instanceof  Integer)
	    	{
	    	 int  val=Integer.parseInt(value.toString());
	    	resultSet.absolute(row+ 1 );
	    	resultSet.updateInt(column+ 1 , val);  
			resultSet.updateRow();
			}
				 if  (value  instanceof  String)
	    	{
	    	String val=(String) value;
	    	resultSet.absolute(row+ 1 );
	    	resultSet.updateString(column+ 1 , val);  
			resultSet.updateRow();
			}			
	    }
	     catch  (Exception ex)
	    {
               System.err.println(ex);
            }
           fireTableCellUpdated(row, column);           
    }
данные обновляются , но таблица показывает что то вроде [B@18941f7
То что данные в базе меняются видно при повторном запросе и в самой базе.
При повторном запросе и читается нормально.
Что изменить чтоб сразу таблица выглядела нормально?
Подскажите плиз...
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516209
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй воспользоваться
Код: plaintext
1.
2.
3.
4.
 public   Class  getColumnClass( int  col){
        if (col==номер колонки где показывает глюк)        
             return  Integer. class ;
     }
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516324
avart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не помогло

у меня там
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 public   Class  getColumnClass( int  column)
	{
		 try 
		{			
		String className=metaData.getColumnClassName(column+ 1 );
				System.out.println("myprint"+className);
				 return   Class .forName(className);	
		}
		 catch  (SQLException e)
		{
			e.printStackTrace();
		}
		 catch  (ClassNotFoundException ex)
		{
			ex.printStackTrace();
		}
				 return    Object. class ;
		
	}
Строчку System.out.println("myprint"+className);
вывел специально чтоб проверить
выдает правильное определение классов по таблице
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516367
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а это что за фигня в твоем коде return Object.class;
нафига она там нужна
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516456
avart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это в случае неопределения класса. Если эту строчку поменять

return String.class;
ничего не меняется

вот трейс ошибки

это TableModelEvent e из метода tableChanged
авторjavax.swing.event.TableModelEvent[source=ResultSetTableModel@e0cc23]
javax.swing.event.TableModelEvent[source=ResultSetTableModel@e0cc23]

а это из getColumnClass
Код: plaintext
1.
2.
3.
[B
java.lang.String
[B
java.lang.String
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516488
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а getValueAt() как выглядит?


-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516506
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avartЭто в случае неопределения класса. Если эту строчку поменять

return String.class;
ничего не меняется

вот трейс ошибки

это TableModelEvent e из метода tableChanged
авторjavax.swing.event.TableModelEvent[source=ResultSetTableModel@e0cc23]
javax.swing.event.TableModelEvent[source=ResultSetTableModel@e0cc23]

а это из getColumnClass
Код: plaintext
1.
2.
3.
[B
java.lang.String
[B
java.lang.String

в таком случае она должна быть в catch()
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516540
avart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 public  Object getValueAt( int  row, int  column)
	{
		 try 
		{
			resultSet.absolute(row+ 1 );
			 return  resultSet.getObject(column+ 1 );
		} catch  (SQLException sqlexception)
		{
			sqlexception.printStackTrace();
		}
				 return  "";
	}

peter6636 , кто она ?
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516545
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avart
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 public  Object getValueAt( int  row, int  column)
	{
		 try 
		{
			resultSet.absolute(row+ 1 );
			 return  resultSet.getObject(column+ 1 );
		} catch  (SQLException sqlexception)
		{
			sqlexception.printStackTrace();
		}
				 return  "";
	}

peter6636 , кто она ?
строчка return ""
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516581
avart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибка в том что в getValueAt у меня стоял
resultSet.absolute(row+1);
return resultSet. getObject (column+1);


я поменял на
resultSet.absolute(row+1);
return resultSet. getString (column+1);
и все стало нормально
теперь надо как то динамически прописать класс колонки
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516622
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так она и так из БД берется
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516626
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть он (класс)
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33516642
avart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тоже был в этом уверен но выходит он берется и JTable когда обновляешь запрос
а при редактировании почемуто нет
что делать?
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33517672
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Result set'ы разные бывают.
насколько я понимаю лучше использовать отсоединённый RowSet-
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33518121
avart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это как?
У меня модель и там
public Class getColumnClass(int column){
............
String className= metaData .getColumnClassName(column+1);
return
Class.forName(className);
}

После изменения поля таблицы и апдейта базы меняется
metaData .
глючит только та колонка, в которой были изменения
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33600707
MaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я определил что в метадате класс String колонки меняется на ]B сразу после вызова resultSet.updateString(col + 1, value);
Блин, долблюсь уже который час, а так и не понял, что нада сделать, кроме обновления.
Кто нибудь знает как это исправить?
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33606526
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай проверку типа колонки в методе getValueAt():

Код: plaintext
1.
2.
3.
4.
5.
6.
resultSet.absolute(row+ 1 );
 if  (getColumnClass(column) ==  byte []. class ) {
   return  resultSet.getString(column+ 1 );
} eslse {
   return  resultSet.getObject(column+ 1 );
}
...
Рейтинг: 0 / 0
Отображение изменений в JTable
    #33647178
avart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я разобрался если кому то интересно
дело не в обсуждаемом этом фрагменте кода
всего навсего поменял
авторpublic Class getColumnClass(int column)
{
try
{
String className=metaData.getColumnClassName(column+1);
return Class.forName(className);
}
catch (SQLException sqlexception)
{
sqlexception.printStackTrace();
}
catch (ClassNotFoundException exception)
{
exception.printStackTrace();
}
return Object.class;
}

на

автор public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
после этого все ок
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Отображение изменений в JTable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]