如何设置颜色边框到行选择jtable?

时间:2016-03-12 17:22:14

标签: java swing jtable

我有一个JTable,我想在表格中选择一行时,它会变成蓝色,并在行周围标记绿色边框。 我能够将颜色变成蓝色,但不能在行周围标出绿色边框。 我附上了一张照片 - 这就应该是它。

enter image description here

提前致谢 编辑后: 我添加到我的代码中:

 JTable jTable1 = new JTable( model )
{
  //  Returning the Class of each column will allow different
  //  renderers to be used based on Class
  public Class getColumnClass(int column)
  { 
       return columns[column];
  }
  @Override
    public boolean isCellEditable(int row, int column) {
       //all cells false
       return false;
    }

  @Override
    public Component prepareRenderer(TableCellRenderer renderer, int row, int col) {
      Component c = super.prepareRenderer(renderer, row, col);
              JComponent jc = (JComponent)c;
            if (isRowSelected(row)){
                int top = (row > 0 && isRowSelected(row-1))?1:2;
              int left = col == 0?2:0;
              int bottom = (row < getRowCount()-1 && isRowSelected(row + 1))?1:2;
              int right = col == getColumnCount()-1?2:0;
                jc.setBorder(BorderFactory.createMatteBorder(top, left, bottom, right, new Color(210,236,204))); 
                jc.setForeground(new Color(164, 164, 172));
            }
            else{
              jc.setBorder(null);
            }             
        int selCol = -2;
        int selRow = jTable1.getSelectedRow();

        if ( selCol != -1 && selRow != -1 ){
            if ( row == selRow || col == selCol){
                c.setBackground(new Color(249,250,254));    
            }else
                c.setBackground(Color.WHITE);
        }
        return c;
    }
};

我几乎得到了我想要的东西,但如果仔细观察每个细胞之间缺失的颜色。 我该怎么办?

这就是我现在所拥有的

enter image description here

0 个答案:

没有答案
相关问题