小编Mad*_*lur的帖子

Swing JTable - 以与所选行的其余部分不同的颜色突出显示所选单元格?

我有一个基本的Swing的JTable和要求是任何细胞被点击时,整行应突出,同时又有所单击单元格应该从突出显示行的其余部分不同的颜色.

目前,我已将isRowSelectionAllowed视为true

我尝试使用自定义TableCellRenderer,如下所示:

public class CustomTableCellRenderer extends DefaultTableCellRenderer
{

public static final 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.red);
    }
    else {
        c.setForeground(Color.black);
        c.setBackground(Color.white);
    }
    return c;   
  }     
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用(整行以红色突出显示).

我还尝试按如下方式设置UIManager属性:

UIManager.put("Table.focusCellBackground", 
         new javax.swing.plaf.ColorUIResource (Color.red));
Run Code Online (Sandbox Code Playgroud)

但这似乎也不起作用(即使我尝试使用边框设置边框时)

UIManager.put("Table.focusCellHighlightBorder", 
         new BorderUIResource.LineBorderUIResource(Color.red)); 
Run Code Online (Sandbox Code Playgroud)

效果很好)

你能否提出我可能需要做的建议?

java swing jtable tablecellrenderer

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×1

jtable ×1

swing ×1

tablecellrenderer ×1