首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

JTable的列阔与内容的自适应-转

2012-12-28 
JTable的列宽与内容的自适应--转JTable的列宽与内容的自适应JTable默认的各列宽度平均,下函数可以实现各列

JTable的列宽与内容的自适应--转

JTable的列宽与内容的自适应
JTable默认的各列宽度平均,下函数可以实现各列宽度与内容长度适应!来自互联网~

?

public void FitTableColumns(JTable myTable){
??JTableHeader header = myTable.getTableHeader();
?????int rowCount = myTable.getRowCount();

?????Enumeration columns = myTable.getColumnModel().getColumns();
?????while(columns.hasMoreElements()){
?????????TableColumn column = (TableColumn)columns.nextElement();
?????????int col = header.getColumnModel().getColumnIndex(column.getIdentifier());
?????????int width = (int)myTable.getTableHeader().getDefaultRenderer()
?????????????????.getTableCellRendererComponent(myTable, column.getIdentifier()
?????????????????????????, false, false, -1, col).getPreferredSize().getWidth();
?????????for(int row = 0; row<rowCount; row++){
?????????????int preferedWidth = (int)myTable.getCellRenderer(row, col).getTableCellRendererComponent(myTable,
???????????????myTable.getValueAt(row, col), false, false, row, col).getPreferredSize().getWidth();
?????????????width = Math.max(width, preferedWidth);
?????????}
?????????header.setResizingColumn(column); // 此行很重要
?????????column.setWidth(width+myTable.getIntercellSpacing().width);
?????}

?

在表格数据变化后,请调用FitTableColumns(yourTableName);

网上很多,我试过,但大多不起作用,目前为止只发现这个行
原文地址:http://www.ieee.org.cn/dispbbs.asp?boardID=41&ID=52381

热点排行