Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 1
Регистрация: 16.02.2013
Сообщений: 48
1

Обнуление идентификаторов в ColumnModel при добавлении колонки в JTable

07.07.2018, 22:00. Показов 648. Ответов 0

Author24 — интернет-сервис помощи студентам
Вечер добрый
Есть пустая Jtable. Колонки в таблицу добавляются через DefaultTabelModel и к ним ставится идентификатор - уникальный ID:

Java
1
2
3
4
5
6
7
public void addNode(String name) {
        Node n = graph.addNode(Integer.toString(ID++));
        n.addAttribute("ui.label", name);
 
        ((DefaultTableModel)table.getModel()).addColumn(name);
        table.getColumnModel().getColumn(table.getColumnCount() - 1).setIdentifier(n.getId()); //установка идентификатора
}
Удаление, по-идее, должно производиться через этот идентификатор:

Java
1
2
3
4
public void deleteNode(Node n) {
        table.removeColumn(table.getColumn(n.getId()));
        graph.removeNode(n);
}
Но каждый раз получаю ошибку о не найденном идентификаторе. Как показал дебаггер, при добавлении новой колонки, идентификаторы предыдущих обнуляются. Подскажите, так и предусмотрено? И как это обойти.
P.S.: таблица, на данный момент, модифицируется исключительно этими двумя методами.

Добавлено через 53 минуты
Оказалось, что в стандартной библиотеке происходит полное пересоздание таблицы, через вызов метода:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public void createDefaultColumnsFromModel() {
        TableModel m = getModel();
        if (m != null) {
            // Remove any current columns
            TableColumnModel cm = getColumnModel();
            while (cm.getColumnCount() > 0) {
                cm.removeColumn(cm.getColumn(0));
            }
 
            // Create new columns from the data model info
            for (int i = 0; i < m.getColumnCount(); i++) {
                TableColumn newColumn = new TableColumn(i);
                addColumn(newColumn);
            }
        }
    }
Как итог остаётся только хэдер и данные внутри.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2018, 22:00
Ответы с готовыми решениями:

Ошибка Неверное имя колонки При добавлении колонки ТЗ
Народ, подскажите что не правильно, Выдет ошибку.Результат отчета помещаю в таблицу значений...

Обнуление полей на форме при добавлении записей
Доброе утро! Имеется таблица со следующими полями № п/п Наименование документа Количество...

JTable как уловить изменения только в существующих ячейках, а не при добавлении нового ряда
Здравствуйте! Мне нужно создать таблицу, в которую можно добавлять новые ряды, а также...

Как проинициализировать значение колонки в grid при добавлении записи?
В grid из навигатора плюсиком &quot;+&quot; добавляю новую строку. Необходимо проинициализировать значения...

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

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

Группировать Колонки JTable
Подскажите пожалуйста как в JTable сгруппировать колонки. Добавлено через 19 часов 35 минут Я...

Как сделать фиксацию колонки/строки в JTable?
Всем доброго времени суток! В JTable необходимо зафиксировать одновременно первую колонку и...

Сreative 5.1 - при проигровании музыки работают 2 фронтальные колонки и саб, остальные колонки молчат
Здравствуйте Купил аудиосистему Сreative 5.1, поставил в комп карту SB Сreative audigy SE 5.1,...


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

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