Установка границ ячеек в JTable

У меня есть JTableи я показываю только горизонтальные линии для разделения каждой строки таблицы. В Windows 8 строки отображаются, а в Mac OS X - нет. Я использую JLabel в настраиваемом устройстве визуализации ячеек для всех ячеек таблицы, и я добавил матовую рамку к JLabel исправить эту проблему для Mac OS X. Однако, это не выглядит правильно, потому что если вы посмотрите внимательно на скриншоте ниже, вы можете увидеть, что горизонтальная линия разорвана (т.е. не является смежной), где заканчивается один столбец, а начинается другой. (Посмотрите внимательно между колонками "Английский" и "Заметки")

Как добавить рамку для всех ячеек в таблице так, чтобы она выглядела так, как на скриншоте Windows 8 ниже?

1 ответ

Решение

TableUI делегат на Mac OS X устанавливает оба Table.background а также Table.gridColor в Color.white, делая сетку эффективно невидимой. Вы можете изменить цвет сетки следующим образом:

UIManager.put("Table.gridColor", new ColorUIResource(Color.gray));
EventQueue.invokeLater(new Runnable() {

    @Override
    public void run() {
        // construct your GUI
    }
});
Другие вопросы по тегам