您的位置:首页 > 其它

Jtable重载绘制器,实现单元格自动换行和选中高亮

2013-06-12 14:51 459 查看
 

 

//重载绘制器-Jtable默认继承jlable, 改为继承jtextarea 

 class TableCellTextAreaRenderer extends JTextArea implements TableCellRenderer {

  public TableCellTextAreaRenderer() {

  setLineWrap(true);

  setWrapStyleWord(true);

  }

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

   

   

   //设置选择行高亮

    if (isSelected || row == selected_row) {

              this.setForeground(table.getSelectionForeground());

              this.setBackground(table.getSelectionBackground());

       }else { 

                  this.setForeground(Color.BLACK);

                  this.setBackground(table.getBackground());

       }

 

 

  // 计算当下行的最佳高度

  int maxPreferredHeight = 0;

  for (int i = 0; i < table.getColumnCount(); i++) {

  setText("" + table.getValueAt(row, i));

  setSize(table.getColumnModel().getColumn(column).getWidth(), 0);

  maxPreferredHeight = Math.max(maxPreferredHeight, getPreferredSize().height);

  }

  if (table.getRowHeight(row) != maxPreferredHeight) // 少了这行则处理器瞎忙

  table.setRowHeight(row, maxPreferredHeight);

  setText(value == null ? "" : value.toString());

  return this;

  }

  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jtable 重载