Я не знаю, как выровнять значения ячеек в JTable.
Поскольку Исключая, шоу Jtable, Зарплата Имени г-н X 100 000,50 XXXX 234.34 YYYy 1205.50
Я хочу выровнять "Зарплаты" в следующем формате.
Name Salary
Mr.X 100000.50
XXXX 234.34
YYYy 1205.50
Как выровняться как выше JTable
Для этого нет необходимости создавать собственный класс, просто используйте средство визуализации по умолчанию:
DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(SwingConstants.RIGHT);
table.getColumnModel().getColumn(???).setCellRenderer(rightRenderer);
Или лучший подход состоит в том, чтобы на самом деле сохранить значения Double в таблице, а затем будет использоваться правильный числовой модуль визуализации и числовые средства визуализации. автоматически выравнивается по правому краю. Затем вы можете настроить форматирование числа с помощью средства визуализации формата таблицы .
Чтобы решить эту проблему, нужно указать настраиваемое средство визуализации ячеек для каждого столбца. Каждый модуль рендеринга будет форматировать эти данные по-разному (имена будут выровнены по левому краю, десятичные - по правому, ...)
Из этого сообщения на форуме :
Создайте класс, расширяющий DefaultTableCellRenderer
, и реализуйте метод getTableCellRendererComponent ()
, например:
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
JLabel renderedLabel = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
renderedLabel.setHorizontalAlignment(SwingConstant s.RIGHT);
return renderedLabel;
}
и установите это средство визуализации для рассматриваемого столбца.
Теперь вам нужно только убедиться, что каждое значение имеет одинаковое количество десятичных знаков, потому что для большинства шрифтов все цифры имеют одинаковую ширину.