Я создаю приложение для биллинга. Я хочу, чтобы столбец количества отображался с правильным выравниванием. Как установить правильное выравнивание для столбца JTable?
Установить правильное выравнивание в столбце JTable
Ответ 1
DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
table.getColumnModel().getColumn(4).setCellRenderer(rightRenderer);
Ответ 2
Попробуйте следующее:
JTable tbl = new JTable(3,3) {
DefaultTableCellRenderer renderRight = new DefaultTableCellRenderer();
{ // initializer block
renderRight.setHorizontalAlignment(SwingConstants.RIGHT);
}
@Override
public TableCellRenderer getCellRenderer (int arg0, int arg1) {
return renderRight;
}
};
Ответ 3
См. Концепции: Редакторы и средства визуализации, отмечая " Number - отображается с помощью выровненной по правому краю метки". Просто TableModel ваша TableModel возвращает правильный класс. В качестве конкретного примера, обратите внимание, что Integer является Number, при рассмотрении реализации getColumnClass() в этом примере. В этом связанном примере нулевой colIndex возвращает Object.class, который "отображается с помощью метки, отображающей значение строки объекта". По умолчанию метка выравнивается по левому краю.
switch (colIndex) {
case 0: return Object.class;
…
}
Напротив, Integer.class "визуализируется выравниванием по правому краю".
switch (colIndex) {
case 0: return Integer.class;
…
}
Это примеры использования литералов класса в качестве токенов типа времени выполнения, обсуждаемых здесь в контексте JTable.
Ответ 4
Вам нужно будет получить DefaultTableCellRenderer для ячеек таблицы и вызвать setHorizontalAlignment (выравнивание).
Пример можно найти по ссылкам:
http://www.techrepublic.com/article/how-to-justify-data-in-a-jtable-cell/5032692/
http://www.coderanch.com/t/337549/GUI/java/align-data-columns-JTable

