paintComponent и getTableCellRendererComponent не вызывают - PullRequest
2 голосов
/ 07 сентября 2010

Я устанавливаю средство визуализации JTable с помощью setDefaultTableRenderer.

JTable table = new JTable();
table.setDefaultRenderer(Object.class,MyRenderer);

MyRenderer расширяет DefaultTableCellRenderer и переопределяет paintComponent и getTableCellRendererComponent.

У меня есть 4 строки и 8 столбцов, и по странной причине мои методы визуализации не вызываются для первых двух столбцов первой строки. Я использую методы SwingUtilites.invoke для вызова моего графического интерфейса и его работы для всех остальных столбцов, кроме этих двух столбцы.

1 Ответ

4 голосов
/ 07 сентября 2010

Не видя ваш код, я могу только догадываться, но я думаю, что у вас, вероятно, есть свой собственный TableModel, который возвращает column.class для каждого столбца.JTable имеет DefaultCellRenderer для некоторых из этих классов, таких как Integer и т. Д. Поэтому, вероятно, ваши первые столбцы - это столбцы Integer, что приводит к тому, что JTable использует собственный рендерер.Класс рендерера:

table.setDefaultRenderer( Integer.class, myRenderer );
...