2015-10-06 4 views
0

Потому что я не понимаю проблему, я не знаю, как задать хороший вопрос. Но я просто хочу изменить размеры столбцов в JTable. Я использую класс JTable и DefaultTableModel для создания столбцов, но некоторые столбцы занимают много места, например, кнопки проверки. Интересно, знает ли кто-нибудь, как минимизировать эти столбцы программным путем.Как изменить размер столбцов JTable программно, DefaultTableModel Java

Вот код, я использую

public static final String[] COLUMNS = {"Närvaro/Frånvaro", "Deltagare", "Ärendenummer", "Avvikelse"}; 
private CheckBoxDefaultTableModel model = new CheckBoxDefaultTableModel(COLUMNS, 0); 
private final JTable table = new JTable(model); 

class CheckBoxDefaultTableModel extends DefaultTableModel { 

private List<String> removedItemsList = new ArrayList<String>(); 

public CheckBoxDefaultTableModel(Object[] columnNames, int rowCount) { 
    super(columnNames, rowCount); 
} 
Object[] row = {Boolean.FALSE, namn, caseNbr, null}; 

У меня нет репутации, чтобы добавить изображение моей программы, но он выглядит в этой ссылке:

https://www.google.se/search?q=DefaultTableModel+java&es_sm=122&source=lnms&tbm=isch&sa=X&ved=0CAgQ_AUoAmoVChMIx8-2na2uyAIVSY8sCh2KhQ4R&biw=1093&bih=522#tbm=isch&q=DefaultTableModel+java+gui&imgrc=tWPQqLj7FDfIBM%3A

+1

Изучается полный рабочий пример [здесь] (http://stackoverflow.com/q/32919867/230513). – trashgod

+0

Спасибо, он работает сейчас :) – Xdeveloper

+0

Это был необходимо: TableColumnModel tcm = table.getColumnModel(); и затем tcm.getColumn (1) .setPreferredWidth (2); – Xdeveloper

ответ

1

Это было необходимо изменить размеры столбцов JTable,

TableColumnModel tcm = table.getColumnModel();  
tcm.getColumn(1).setMaxWidth(110); 
tcm.getColumn(1).setPreferredWidth(2); 

Чтобы центрировать значение ячейки JTable,

DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer(); 
centerRenderer.setHorizontalAlignment(JLabel.CENTER); 
table.getColumnModel().getColumn(3).setCellRenderer(centerRenderer);