Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JTable замена колонок местами / 4 сообщений из 4, страница 1 из 1
23.01.2017, 09:32
    #39389297
Mari.P
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable замена колонок местами
Дано таблица в Swing, компонент JTable
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
TablePanel= new JPanel();
    TablePanel.setLayout(new GridLayout(1,1,3,5));	
    add(TablePanel, BorderLayout.NORTH);
     Vector<String> headerVect = new Vector<String>();
     headerVect.add("    Дата/время          "); 
       for(j=0;j<NumberOfTable;j++)
       	  if(InDraw[j]==true)headerVect.add(SelDrawArrAdrNaim[j]+" - "+SelDrawArrArjNaim[j]);
     DefaultTableModel mod = new DefaultTableModel(headerVect, 0);
     table_a = new JTable();
     table_a.setModel(mod);
     table_a.getTableHeader().setFont(new Font("Courier New", Font.BOLD, 14));
     table_a.setFont(new Font("Courier New", Font.PLAIN, 16));
     table_a.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

     // цикл по заполнению колонок
            
     /// конец цикла

     scrollPane=new JScrollPane(table_a);
     TablePanel.add(scrollPane);
     validate(); 
     pack();



После вывода таблицы на экран можно подвести курсор к оглавлению любой колонки и с нажатой левой кнопкой мыши менять колонки местами. Но смена видна только на экране, при обращении к элементу скажем
Код: java
1.
table.getModel().getValueAt(i, j)


компоновка вернется старая. Скажите, как можно зафиксировать это перемещение, очень удобно перед построением отчета,
чтобы пользователь разместил колонки в том порядке, в каком ему удобно.
...
Рейтинг: 0 / 0
23.01.2017, 10:03
    #39389319
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable замена колонок местами
Mari.P,

Никак нельзя "зафиксировать" существующими средствами. Можно использовать методы JTable.convertColumnIndexTo(View|Model).
Можно, конечно, написать такую модель, которая будет самообновляться из порядка колонок. Но это как-то чревато, если использовать типизированнные данные.
...
Рейтинг: 0 / 0
26.01.2017, 15:46
    #39392196
Mari.P
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable замена колонок местами
Blazkowicz,
Спасибо большое,
Нашла выход:

в функции, которая формирует отчет надо говорить не
Код: java
1.
table.getModel().getValueAt(i, j)



а
Код: java
1.
table.getValueAt(row, 0);



страшного при этом ничего нет, тк осуществляется просто
запись информации в ячейку Excel.
...
Рейтинг: 0 / 0
26.01.2017, 15:49
    #39392200
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JTable замена колонок местами
Mari.P,

М-да. Не подумал. Логично же.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JTable замена колонок местами / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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