Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java: GUI, Графика
Войти
Регистрация
Восстановить пароль
 
LEQADA
Мастер кустарных методов
227 / 222 / 17
Регистрация: 09.11.2010
Сообщений: 680
1

Как обновлять записи JTable без вырисовывания всей таблицы?

02.09.2014, 15:05. Просмотров 439. Ответов 0

Всем доброго времени суток.
У меня есть таблица, которая получает данные из базы данных. Создал поток, который постоянно проверяет базу на обновления, и если они есть, то записывает в таблицу. Пишу всё в матрицу и отдаю таблице следующим образом:
Java
1
2
model = new WaiterModel(waiterNew);
Table.setModel(model);
а вот и сам model:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package javaapplication4;
 
import javax.swing.table.AbstractTableModel;
 
public class WaiterModelextends AbstractTableModel {
 
    private final String[] columnNames = {"AAA", "BBB", "CCC", "DDD", "EEE"};
    public  Object[][] data;
 
 
    WaiterModel(Object[][] temp) {
        data = temp;
    }
 
    @Override
    public int getColumnCount() {
        return columnNames.length;
    }
 
    @Override
    public int getRowCount() {
        return data.length;
    }
 
    @Override
    public String getColumnName(int col) {
        return columnNames[col];
    }
 
    @Override
    public Object getValueAt(int row, int col) {
        Object o = data[row][col];
        if(o==null) System.out.println(row+" | " + col);
        return data[row][col];
    }
 
    @Override
    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }
 
    @Override
    public boolean isCellEditable(int row, int col) {
        return false;
    }
 
    @Override
    public void setValueAt(Object value, int row, int col) {
        System.out.println(row + "row is here");
        data[row][col] = value;
        fireTableCellUpdated(row, col);
    }
 
    public void addRow(String[] rowData) {
        int size = getRowCount();
        Object[][] dataTemp = new Object[size][getColumnCount()];
        System.arraycopy(data, 0, dataTemp, 0, size);
        data = new Object[size + 1][getColumnCount()];
        System.arraycopy(dataTemp, 0, data, 0, size);
        
        for (int j = 0; j < 5; j++) {
            data[size][j] = rowData[j];
        }
        
        fireTableRowsInserted(size + 1, getColumnCount());
    }
}
Но каждый раз, когда я обновляю таблицу, она вся моргает. Как бы вся таблица со строками и header'ом моргает. Таблица вырисовывается снова.
Как можно внутри модели написать метод, который будет обновлять записи, а не вырисовывать таблицу заново?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2014, 15:05
Ответы с готовыми решениями:

Дублирование всей записи из таблицы Access в Delphi
Помогите пожалуйста, каким образом можно сделать дублирование всей записи из таблицы, а то у меня...

Как обновлять только что вставленные записи
FormirovkaQuery.SQL.clear; FormirovkaQuery.SQL.Text:='INSERT INTO...

Как выборочно обновлять ячейки таблицы html
есть таблица. необходимо некоторые ячейки оставлять без обновления. как сделать это - только...

Как обновлять переменную php без обновления страницы?
Была задача сделать проверку количества конкретного типа товара и выдавать предупреждение если...

JTable, как запретить редактирование таблицы?
Работаю в NetBeans. Положил на форму JTable. Всё работает идеально. Но как запретить...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2014, 15:05

Как скрыть заголовки столбцов таблицы jTable?
Как скрыть заголовки столбцов таблицы jTable?

Restfull - как сделать удаление всей таблицы
Здравствуйте, у меня возник вопрос: как удалить все записи из таблицы посредством restfull, да я...

Как получить данные из всей строки таблицы
Как получить данные из всей строки таблицы т.е нажал я на кнопку1 и получил данные из ячеек со...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru