java JTable表头自动换行
2008-04-01 16:55
429 查看
package util;
import javax.swing.JTextArea;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;
import java.awt.Component;
import javax.swing.UIManager;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2008</p>
* <p>Company: </p>
* @Author SamZheng 2008-03-31
* @version 1.0
*/
public class MultiLineHeaderRenderer extends JTextArea implements TableCellRenderer{
private final DefaultTableCellRenderer adaptee = new DefaultTableCellRenderer();
public MultiLineHeaderRenderer() {
super(1, 50);
setOpaque(true);
setLineWrap(true);
setWrapStyleWord(true);
}
public Component getTableCellRendererComponent(JTable table, Object obj,
boolean isSelected, boolean hasFocus,
int row,int column) {
int width = 1;
String value = "";
if (table != null) {
JTableHeader header = table.getTableHeader();
if (header != null) {
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
}
width = header.getColumnModel().getColumn(column).getWidth();
if(width==0)
width = 150;
value = header.getColumnModel().getColumn(column).getHeaderValue().toString();
}
setText( (value == null) ? "Column:" + column : value.toString());
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
this.setRows((10*value.length())/width);
//JScrollPane sp = new JScrollPane(this);
return this;
}
}
MultiLineHeaderRenderer multiLineHeaderRenderer = new MultiLineHeaderRenderer();
TableColumnModel cmodel = tblMain.getColumnModel();
cmodel.getColumn(0).setHeaderRenderer(multiLineHeaderRenderer);
import javax.swing.JTextArea;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;
import java.awt.Component;
import javax.swing.UIManager;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2008</p>
* <p>Company: </p>
* @Author SamZheng 2008-03-31
* @version 1.0
*/
public class MultiLineHeaderRenderer extends JTextArea implements TableCellRenderer{
private final DefaultTableCellRenderer adaptee = new DefaultTableCellRenderer();
public MultiLineHeaderRenderer() {
super(1, 50);
setOpaque(true);
setLineWrap(true);
setWrapStyleWord(true);
}
public Component getTableCellRendererComponent(JTable table, Object obj,
boolean isSelected, boolean hasFocus,
int row,int column) {
int width = 1;
String value = "";
if (table != null) {
JTableHeader header = table.getTableHeader();
if (header != null) {
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
}
width = header.getColumnModel().getColumn(column).getWidth();
if(width==0)
width = 150;
value = header.getColumnModel().getColumn(column).getHeaderValue().toString();
}
setText( (value == null) ? "Column:" + column : value.toString());
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
this.setRows((10*value.length())/width);
//JScrollPane sp = new JScrollPane(this);
return this;
}
}
MultiLineHeaderRenderer multiLineHeaderRenderer = new MultiLineHeaderRenderer();
TableColumnModel cmodel = tblMain.getColumnModel();
cmodel.getColumn(0).setHeaderRenderer(multiLineHeaderRenderer);
相关文章推荐
- java JTable表格自动换行
- Java JTable设置(表头,字体,列宽,行宽,间隔色)
- [Java]JTextArea自动换行
- JQuery的jqGrid表头自动换行
- java生成XML文件自动换行问题
- Java Swing JTable 表格【13:为表格的表头指定文字说明】
- mysql中的回车换行,jtable换行,自动调整行高,列宽 \r \n <br/>
- 转!!Java JTable 根据表格内容 自动调整表格列宽
- java JTable设置表头多行
- 浅析响应式框架中,table表头自动换行的快速解决方法
- 关于java代码jtable不显示表头的解决
- java swing中Jtable+JScrollpane实现自动滚动到底部——测试真实有效
- GridView自动生成列时,利用DIV控制显示长宽 控件数据行和表头文字不换行
- GridView表头自动换行
- JAVA更改Jtable的数量列值,自动计算金额小计列值的源代码
- Java-js处理textarea自动生成的制表符(空格,换行,tab等)
- java intellij 代码行超过限制时设置自动换行的方法
- java实现记事本基本功能:新建、打开、保存、另存为、退出、替换、全部替换、复制、剪切、粘贴、全选、获取当前时间日期、修改字体、颜色、自动换行等
- Java Swing JTable 表格【3:创建表格,表头存在的设置】
- 利用JLabel能够解析HTML的特性实现JTable表头换行