Java: когда этот метод называется: getTableCellRendererComponent? - PullRequest
2 голосов
/ 21 июня 2011

Чтобы установить цвет для определенной ячейки таблицы, я должен создать пользовательский TableCellRenderer, который имеет следующий метод: getTableCellRendererComponent.

когда этот метод вызывается: getTableCellRendererComponent?

только когда JTable рисуется впервые?

В случае, если у меня есть набор кнопок и jtable на jframe, и каждая кнопка при нажатии вызовет определенное количество ячеек втаблицу, которую нужно раскрасить, как заставить этот метод "getTableCellRendererComponent" вызываться при нажатии на кнопку?

Ответы [ 3 ]

2 голосов
/ 21 июня 2011

, если вы хотите забыть, когда / как / где / обновлены или нет TableCell (s), найдите лучший пример prepareRenderer, как я вижу блог camickr

РЕДАКТИРОВАТЬ: длялучше / ценный hepl, пожалуйста, отредактируйте свой пост и добавьте свой код

2 голосов
/ 21 июня 2011

Это вызывается при первой визуализации таблицы, но должно вызываться во всех ячейках, когда вызывается либо fireTableCellUpdated , либо любой другой метод "fire *".У меня сложилось впечатление, что вы используете класс, который расширяет AbstractTableModel (DefaultTableModel?), И в этот момент эти методы должны запускаться при обновлении определенного значения модели таблицы.

Пример использования пользовательскихячейки рендеринга клеток можно найти на Пример депо .GetTableCellRendererComponent будет вызываться при вводе ячейки для просмотра и при обновлении модели.

Добавление : я только что заметил еще одну часть вашего вопроса, когдаgetTableCellRendererComponent с именем? Это вызывается для каждой видимой ячейки в таблице, которая должна быть отображена.Подумайте об этом так: если вы используете JLabel для рендеринга изнутри, вы должны вернуть JLabel, настроенный для отображения только этой ячейки.Он будет повторно использован в следующей ячейке для рендеринга.Самый простой способ думать об этом - это визуальный шаблон, которым вы хотите, чтобы ваша ячейка выглядела, вы настраиваете его при вызове getTableCellRendererComponent и возвращаете его.Вызывающая среда отображает его в экранном буфере как «изображение» (из-за отсутствия лучшего термина), затем реконфигурируется для следующей ячейки и отображается снова.

0 голосов
/ 21 июня 2011

когда этот метод вызывается: getTableCellRendererComponent?

Этот метод вызывается, когда компонент пользовательского интерфейса отображается / отображается для вашего вида в первый раз.

Чтобы установить цвета в ячейках JTable

  1. Надеюсь, вы используете пользовательский DefaultTableCellRenderer.Если это так, то вы можете глобализировать JLabel в своем пользовательском CellRenderer, а затем устанавливать его цвет фона при нажатии кнопки на основе строки, индекса столбца.

  2. В противном случае вы можете использовать DefaultTableColumnModel, который у вас есть defaultrenderer / set customrenderer, который будет отображаться для каждой ячейки.С помощью которого вы можете установить цвет фона ячейки.

TableColumn col = table.getColumnModel().getColumn(vColIndex);
col.setCellRenderer(new MyTableCellRenderer());

См .: Простой пример демонстрации использования TableCellRenderer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...