powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / public void setValueAt(Object aValue, int row, int column)
6 сообщений из 6, страница 1 из 1
public void setValueAt(Object aValue, int row, int column)
    #33179900
Gluk'Oza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне надо как-то узнать, что значение в ячейке изменилось.
В классе DBResultsTableModel, который имеет расширение AbstractTableModel
есть метод:

public void setValueAt(Object aValue, int row, int column)
{
if (!results.getRow(row)[column].equals((String)aValue)) {Z=1;}
results.getRow(row)[column]= (String)aValue;

}

Здесь Z =1 - означает, что изменение произошло.

А теперь я хочу сообщить главной программе, что Z=1, для того чтобы запустить метод, который с помощью statement.executeUpdate(sql) сохраняет данные в таблице.

void - не возвращает данные.

А как мне реализовать, то что мне надо?

Спасибо за помощь...
...
Рейтинг: 0 / 0
public void setValueAt(Object aValue, int row, int column)
    #33180021
AlexMD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
со Свингом работать пока ещё не приходилось,
но попробую :-)
Вы имеете ввиду класс
DBResultsTableModel из книги Core Servlets?
Класс AbstractTableModel - является abstract,
и метод public void setValueAt(Object aValue, int row, int column)
там пустой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    /**
     *  This empty implementation is provided so users don't have to implement
     *  this method if their data model is not editable.
     *
     *  @param  aValue   value to assign to cell
     *  @param  rowIndex   row of cell
     *  @param  columnIndex  column of cell
     */
     public   void  setValueAt(Object aValue,  int  rowIndex,  int  columnIndex) {
    }
В классе DBResultsTableModel он просто переопределён (to override) .
DBResultsTableModel - не является final, значит вы можете создать
свой класс МойНовыйDBResultsTableModel, переопределив
только public void setValueAt(Object aValue, int rowIndex, int columnIndex).
Для сигнализации об изменении можно добавить переменную
ахтунг и соответствующий сеттер с геттером (set and get методы)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 public   class  МойНовыйDBResultsTableModel {
...
 private   int  ахтунг= 0 ;
 private  setАхтунг( int  x){
ахтунг=x;
};
 public   int  getАхтунг(){
 return  ахтунг;
}
/**Ваш переопределённый метод*/
 public   void  setValueAt(Object aValue,  int  row,  int  column)
{
 if  (!results.getRow(row)[column].equals((String)aValue)) {setАхтунг( 1 );}
results.getRow(row)[column]= (String)aValue;
}

...
}
Для "сообщения главной программе" вы из неё вызываете
Код: plaintext
getАхтунг()
...
Рейтинг: 0 / 0
public void setValueAt(Object aValue, int row, int column)
    #33180023
AlexMD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, void забыл, конечно же:
Код: plaintext
1.
2.
3.
 private   void  setАхтунг( int  x){
ахтунг=x;
};
...
Рейтинг: 0 / 0
public void setValueAt(Object aValue, int row, int column)
    #33180025
Gluk'Oza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexMDсо Свингом работать пока ещё не приходилось,
но попробую :-)
Вы имеете ввиду класс
DBResultsTableModel из книги Core Servlets?
Класс AbstractTableModel - является abstract,
и метод public void setValueAt(Object aValue, int row, int column)
там пустой:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    /**
     *  This empty implementation is provided so users don't have to implement
     *  this method if their data model is not editable.
     *
     *  @param  aValue   value to assign to cell
     *  @param  rowIndex   row of cell
     *  @param  columnIndex  column of cell
     */
     public   void  setValueAt(Object aValue,  int  rowIndex,  int  columnIndex) {
    }
В классе DBResultsTableModel он просто переопределён (to override) .
DBResultsTableModel - не является final, значит вы можете создать
свой класс МойНовыйDBResultsTableModel, переопределив
только public void setValueAt(Object aValue, int rowIndex, int columnIndex).
Для сигнализации об изменении можно добавить переменную
ахтунг и соответствующий сеттер с геттером (set and get методы)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 public   class  МойНовыйDBResultsTableModel {
...
 private   int  ахтунг= 0 ;
 private  setАхтунг( int  x){
ахтунг=x;
};
 public   int  getАхтунг(){
 return  ахтунг;
}
/**Ваш переопределённый метод*/
 public   void  setValueAt(Object aValue,  int  row,  int  column)
{
 if  (!results.getRow(row)[column].equals((String)aValue)) {setАхтунг( 1 );}
results.getRow(row)[column]= (String)aValue;
}

...
}
Для "сообщения главной программе" вы из неё вызываете
Код: plaintext
getАхтунг()




Спасибо, попробую ...)))
...
Рейтинг: 0 / 0
public void setValueAt(Object aValue, int row, int column)
    #33180064
Gluk'Oza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделала как было указано выше. Все получилось!

Спасибо огромное))))
...
Рейтинг: 0 / 0
public void setValueAt(Object aValue, int row, int column)
    #33180070
AlexMD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexMDDBResultsTableModel - не является final, значит вы можете создать
свой класс МойНовыйDBResultsTableModel
Который является наследником DBResultsTableModel,
то есть:
Код: plaintext
 extends  DBResultsTableModel
(в первом посте торопился и по невнимательности пропустил ;-/)
"Более правильный код" ;-))
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 public   class  МойНовыйDBResultsTableModel  extends  DBResultsTableModel{
...
 private   int  ахтунг= 0 ;
 private   void  setАхтунг( int  x){
ахтунг=x;
};
 public   int  getАхтунг(){
 return  ахтунг;
}
/**Ваш переопределённый метод*/
 public   void  setValueAt(Object aValue,  int  row,  int  column)
{
 if  (!results.getRow(row)[column].equals((String)aValue)) {setАхтунг( 1 );}
results.getRow(row)[column]= (String)aValue;
}
...
}
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / public void setValueAt(Object aValue, int row, int column)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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