2017-04-04 61 views
0

我试图使用该代码https://stackoverflow.com/a/8187799但有一个变化:我将我的类扩展为JTable,以便在完成后我可以随心所欲地执行任何操作。然后,我只需要将table的出现次数替换为this。但在这部分代码,这是行不通的,因为我重写了一些方法:“this”is not recognized - Java JTable

headerTable.getColumnModel().getColumn(0).setCellRenderer(new TableCellRenderer() { 

     @Override 
     public Component getTableCellRendererComponent(JTable x, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 

      boolean selected = getSelectionModel().isSelectedIndex(row); 
      Component component = getTableHeader().getDefaultRenderer().getTableCellRendererComponent(*this*, value, false, false, -1, -2); 
      ((JLabel) component).setHorizontalAlignment(SwingConstants.CENTER); 
      if (selected) { 
       component.setFont(component.getFont().deriveFont(Font.BOLD)); 
       component.setForeground(Color.red); 
      } else { 
       component.setFont(component.getFont().deriveFont(Font.PLAIN)); 
      } 
      return component; 
     } 
    }); 

如何使用this我打算? (引起我麻烦的this*

回答

2

您正在使用的这个指的是TableCellRenderer。

你必须使用

TopLevelClassName.this 
+0

感谢,这正是我一直在寻找。我会在10分钟内接受你的回答(不知道是否有延迟接受答案)。 – pioupiou1211