2015-04-21 2 views
1

Я пытаюсь реализовать интерфейс флажка, который позволяет пользователю показывать/скрывать столбцы в JTable, но когда я удаляю столбец, столбец, кажется, перемещает позицию, и нет способ узнать 100%, где находятся столбцы. Таблица построена с этим кодом:Предотвращение перемещения столбцов при удалении в JTable

DefaultTableModel model = new DefaultTableModel(); 
JTable table   = new JTable(model); 
JScrollPane scrollPane = new JScrollPane(table); 

String[] columnNames = {"Artist","Track","Album","Genre","Year","Filetype"}; 

for (String column : columnNames) { 
    model.addColumn(column); 
} 
table.createDefaultColumnsFromModel(); 
table.getTableHeader().setReorderingAllowed(false); 

Вот код, у меня есть для реализации флажок слушателей:

if (e.getSource() == artist) { 
    if (!artist.isSelected()) { 
     table.removeColumn(table.getColumnModel().getColumn(0)); 
    } else { 
     table.addColumn(table.getColumnModel().getColumn(0)); 
    } 
} 
if (e.getSource() == trackName) { 
    if (!trackName.isSelected()) { 
     table.removeColumn(table.getColumnModel().getColumn(1)); 
    } else { 
     table.addColumn(table.getColumnModel().getColumn(1)); 
    } 
} 
/* etc */ 

ответ

1

Вы можете использовать Table Column Manager.

Он будет управлять скрытием/отображением столбцов таблицы для вас.

+0

@admrply с индексом конвертирования столбцов из представления в модель (у меня есть для реализации checkbox слушателей) – mKorbel

Смежные вопросы