2014-02-06 49 views
1

我是java新手。我想要做的是创建一个表,显示对象的列表。我想要的是根据对象成员的值为JTable中的特定行赋予颜色。我看到很多选择,比如使用“TableCellRender”等等。我也尝试过了。但问题是我正在使用Netbeans IDE,因此我不是通过代码创建表。有人可以帮我改变由NetBeans定义的表格的行颜色吗?在netbeans中着色jtable行

在此先感谢。

+2

任何人都可以给你的最好的建议是沟渠GUI构建器,直到你明白它在幕后做了什么。 –

+0

对于[示例](http://stackoverflow.com/a/5799016/230513)。 – trashgod

+1

您仍然可以通过您的代码访问表 – MadProgrammer

回答

3

您可以使用DefaultTableCellRendererJTable替代行着色。

table.setDefaultRenderer(Object.class, new TableCellRenderer(){ 
    private DefaultTableCellRenderer DEFAULT_RENDERER = new DefaultTableCellRenderer(); 

      @Override 
      public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
       Component c = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 
       if(isSelected){ 
        c.setBackground(Color.YELLOW); 
       }else{ 
       if (row%2 == 0){ 
        c.setBackground(Color.WHITE); 

       } 
       else { 
        c.setBackground(Color.LIGHT_GRAY); 
       }  } 

     //Add below code here 
       return c; 
      } 

     }); 

如果你想使用特定行的值为你的行着色,那么你可以使用这样的东西。将这些行添加到上面

if(table.getColumnModel().getColumn(column).getIdentifier().equals("Status")){//Here `Status` is column name 
    if(value.toString().equals("OK")){//Here `OK` is the value of row 

     c.setBackground(Color.GREEN); 
    } 
} 
+0

谢谢..这有所帮助。 – arvonline