Выровнять значения ячеек в JTable?

Я не знаю, как выровнять значения ячеек в 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

24
задан Venkat 9 March 2010 в 11:13
поделиться

3 ответа

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

DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment(SwingConstants.RIGHT);
table.getColumnModel().getColumn(???).setCellRenderer(rightRenderer);

Или лучший подход состоит в том, чтобы на самом деле сохранить значения Double в таблице, а затем будет использоваться правильный числовой модуль визуализации и числовые средства визуализации. автоматически выравнивается по правому краю. Затем вы можете настроить форматирование числа с помощью средства визуализации формата таблицы .

43
ответ дан 28 November 2019 в 22:38
поделиться

Чтобы решить эту проблему, нужно указать настраиваемое средство визуализации ячеек для каждого столбца. Каждый модуль рендеринга будет форматировать эти данные по-разному (имена будут выровнены по левому краю, десятичные - по правому, ...)

0
ответ дан 28 November 2019 в 22:38
поделиться

Из этого сообщения на форуме :

Создайте класс, расширяющий 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;
}

и установите это средство визуализации для рассматриваемого столбца.

Теперь вам нужно только убедиться, что каждое значение имеет одинаковое количество десятичных знаков, потому что для большинства шрифтов все цифры имеют одинаковую ширину.

4
ответ дан 28 November 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: