兩個JTable中使用的子類DefaultTableCellRenderer並推翻了getTableCellRendererComponent方法的單元格渲染器。顯示焦點指示符的JTable的重寫getTableCellRendererComponent方法,稱爲super.getTableCellRendererComponent方法,但對於未顯示焦點指示符的JTable的重寫getTableCellRendererComponent方法未調用super.getTableCellRendererComponent方法。
JTable的重點指標:
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int col) {
Component comp = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, col);
....
JTable中沒有重點指標:
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected,
boolean hasFocus, int row,
int col) {
for (int i = 0; i < ids.length; i++) {
....
你是否檢查'null'?另請參閱此[相關,上一個問題](http://stackoverflow.com/questions/6877603/change-the-color-of-the-java-swing-component-focus-indicator/6877841#6877841)。 – trashgod
@trashgod請看我的帖子,基於camickr的例子 – mKorbel
@trashgod我檢查了cellRenderer中的兩個JTable與焦點指示器和一個沒有焦點指示器的邊框,並且都有右邊界= left = top = bottom = 1;我仍然在尋找這兩個JTable之間的不同之處,但目前爲止還沒有成功。 – splatek