0 / 0 / 0
Регистрация: 25.04.2015
Сообщений: 3
1

SetValueAt(), про заполнение JTable

05.05.2015, 19:42. Показов 1614. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
банально нужно что бы содержимое второй и третьей колонки складывало в четвертую. но при добавлении setValueAt() в код и попытке заполнить таблицу выдает ошибки:

at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:29 6)
at javax.swing.table.AbstractTableModel.fireTableCellUpdated(AbstractTableModel.jav a:275)
at javax.swing.JTable$1.setValueAt(JTable.java:694)

можете объяснить на пальцах, именно на примере моего кода?
вот код:

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
(...)
JTable table;
TableModel tm;
String[][]data={
            {"","0","0","0"},
            {"","0","0","0"},
            {"Итого:","0","X","0"}
    };
(...)
        String []headings={"№ автоцистерны","Объем, л","Плотность","Масса, кг"};
 
        table = new JTable(data,headings){
            public boolean isCellEditable(int rowIndex, int colIndex) {
                if (rowIndex ==2) return false;
                if (colIndex ==3) return false;
                return true;
            }
        };
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        JScrollPane jsc=new JScrollPane(table);
        table.setRowHeight(30);
        table.setFont(new Font("Verdana", Font.PLAIN, 18));
        table.setPreferredScrollableViewportSize(new Dimension(750, 90));
 
        tm= table.getModel();
        tm.addTableModelListener(new TableModelListener() {
            @Override
            public void tableChanged(TableModelEvent e) {
                if (e.getType() == TableModelEvent.UPDATE) {
                    data[e.getFirstRow()][e.getColumn()] = "" + tm.getValueAt(e.getFirstRow(), e.getColumn());
                    data[0][3] = data[0][1] + data[0][2];
                    data[1][3] = data[1][1] + data[1][2];
                    tm.setValueAt("123", 0, 3);
                    //tm.setValueAt(data[1][3], 1, 3);
                }
            }
        });
(...)
frame.add(jsc, "span, wrap");
(...)
Добавлено через 1 час 17 минут
разобрался,

tm.removeTableModelListener(this);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2015, 19:42
Ответы с готовыми решениями:

Заставить JTable выполнить setValueAt
Есть таблица JTable, ей назначена TableModel. Таблица лежит в диалоге, пользователь этот диалог...

Заполнение jTable
Здравствуйте! Проблема с заполнением jTable. Хочу заполнить ее массивом значений: 1 колонка-...

Повторое заполнение JTable из MySQL
Товарищи! добрый вечер! Разбирался разбирался... собственно, вот код: ...

Заполнение JTable данными из SQL
тут возник вопрос как заполнять таблицу. Нашел интересный пример, вот только он нерабочий :\ а за...

0
05.05.2015, 19:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2015, 19:42
Помогаю со студенческими работами здесь

Обнуление и заполнение новыми данными JTable
Здравствуйте. У меня возникла следующая проблема: В некотороый момент работы программы необходимо...

getValueAt and setValueAt
Столкнулся с непониманием работы этих двух методов. Во всех примерах написано, что для...

Задача про заполнение квадратной матрицы
Здравствуйте. Не могу решить следующую задачу: дано квадратную матрицу, заполнить ее так: 1 1 1 1...

Снова про заполнение Combobox'a именами таблиц
Друзья, прошу помощи. Три дня пытался сделать все своими силами (очень унылыми, так как в институте...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru