как установить изображение в ячейку jTable при щелчке (Mouse Event) строки - PullRequest
0 голосов
/ 10 февраля 2012

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

Ответы [ 3 ]

2 голосов
/ 10 февраля 2012

Если вы просто хотите, чтобы изображение появилось в ячейке таблицы, используйте средство визуализации по умолчанию для ImageIcon и убедитесь, что ваш TableModel возвращает ImageIcon.class для этого столбца.

Если вы хотите, чтобы изображение появлялось в ответ на щелчок, попробуйте использовать вариант TablePopupEditor с setClickCountToStart(1) и ваше изображение как Icon.

1 голос
/ 10 февраля 2012

Это ваш четвертый вопрос по отображению изображения в JTable, так что, я думаю, вы уже знаете, как это сделать.

Так что, если вы хотите обновить строку при изменении выбора, вам нужно будет использовать ListSelectionListener. Затем, когда слушатель сработает, вам нужно будет обновить TableModel, чтобы удалить значок из предыдущей строки и обновить значок в текущей строке.

JList: предыдущий выбранный элемент показывает, что вы можете получить номера строк для обновления.

0 голосов
/ 10 февраля 2012

Лучший способ сделать это - создать собственный рендерер ячейки таблицы.

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            if(isSelected){
               return new Image(); // if selected
            }
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); // if not selected do the normal stuff
}

Примерно так.

...