Установите Jtable / Column Renderer для логических значений - PullRequest
4 голосов
/ 21 мая 2010

Прямо сейчас мои Boolean значения для моего дисплея JTable как JCheckBoxes. Обычно это нормально, но я бы хотел отобразить их как альтернативную строку или изображение. Я могу заставить их отображаться как true / false, но я хотел бы отображать их как галочку ((), если true, и ничего, если false Возможно изображение, но давайте сначала создадим строку ...

Ответы [ 2 ]

9 голосов
/ 21 мая 2010

Создание пользовательского рендерера. Расширьте DefaultTableCellRenderer и добавьте свой собственный код для отображения того, что вы хотите. Это может быть пользовательский значок или, если «галочка» является печатным символом, чем вы можете просто установить для текста средства визуализации соответствующий символ.

Прочтите JTable API, и вы найдете ссылку на учебник Swing по «Как использовать таблицы», который даст дополнительную информацию о средствах визуализации.

Если вам нужна дополнительная помощь, опубликуйте SSCCE с указанием проблем, возникающих при создании средства визуализации.

Edit:

В руководстве показано, как добавить настраиваемое средство визуализации для данного класса, но не показано, как добавить настраиваемое средство визуализации для определенного столбца. Вы бы использовали:

table.getColumnModel().getColumn(...).setCellRenderer(...);
3 голосов
/ 21 мая 2010

Пример:

table.setDefaultRenderer(Boolean.class, new BooleanRenderer(true));

с BooleanRenderer

public class BooleanRenderer extends JLabel implements TableCellRenderer
{
.....
}
...