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;
}
}
相关文章推荐
- Android中用StaticLayout实现文本绘制自动换行详解
- 绘制在某个矩形区域内字符串自动多行换行的一个方法(c)语言实现
- c#(mobile) 绘制文字自动换行的实现
- Extjs中GridPanel实现单元格自动换行的补充
- c#(mobile) 绘制文字自动换行的实现
- CSS实现Table单元格自动换行或不换行
- css表格单元格中的长文本如何实现自动换行
- j2me在Canvas上绘制大量文本自动换行的实现
- OFFICE2013实现选中单元格所在行、列高亮显示
- PhpSpreadsheet生成Excel时实现单元格自动换行
- Extjs中GridPanel实现单元格自动换行的补充-转载
- 在区域内绘制宽字符串多行自动换行的c语言实现方法
- Android使用StaticLayout实现文本绘制自动换行
- JXL自动换行的实现
- css实现强制不换行/自动换行/强制换行
- ExtJs复选框树,可实现节点选中自动选中父节点子节点(权限树)
- 关于如何实现编辑框单击时自动选中全部内容的方法
- JS实现点击按钮自动增加一个单元格的方法
- jQuery实现多选框的全选按钮自动选中与消失
- html 中自动换行的实现方式