Установить правильное выравнивание в столбце JTable

Я создаю приложение для биллинга. Я хочу, чтобы столбец суммы отображался с выравниванием по правому краю. Как установить правильное выравнивание для столбца JTable?

19
задан Nathan 21 January 2016 в 19:07
поделиться

3 ответа

Вам нужно будет получить 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

2
ответ дан 30 November 2019 в 02:44
поделиться

См. раздел Концепции: Editors and Renderers, отмечая "Number - отображается выровненной по правому краю меткой". Просто пусть ваша TableModel возвращает правильный класс. В качестве конкретного примера обратите внимание, что Integer является Number, рассматривая реализацию getColumnClass() в этом примере. В этом связанном примере нулевой colIndex возвращает Object.class, который "отображается меткой, показывающей строковое значение объекта". По умолчанию метка выровнена по левому краю.

switch (colIndex) {
    case 0: return Object.class;
    …
}

left-aligned

Напротив, Integer.class "отображается меткой с правым выравниванием."

switch (colIndex) {
    case 0: return Integer.class;
    …
}

right-aligned

Это примеры использования Литералов классов как маркеров Runtime-Type, которые обсуждались здесь в контексте JTable.

5
ответ дан 30 November 2019 в 02:44
поделиться

Попробуйте так:

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;
    }
};
8
ответ дан 30 November 2019 в 02:44
поделиться
Другие вопросы по тегам:

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