JTable设置列宽、自动调整
下面這個方法 你可以用來設置列寬,在你需要的地方調用一下就可以了
Java code
public void FitTableColumns(JTable myTable) { //設置table的列寬隨內容調整
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);
}
}
方案二:
javax.swing.table.TableColumnModel tcm = jTable1.getColumnModel();
javax.swing.table.TableColumn tc =tcm.getColumn(1);
tc.setPreferredWidth(130);
方案三:
table.getColumn("column name").setMinWidth(width);
table.getColumn("column name").setMaxWidth(width);
table.setColumnsToFit(0); //据说是JTable的bug,必须如此调用
方案四:
and use the following fuction to automatically adjust
private void initColumnSizes(JTable table, MyTableModel model, Object[][] tableData){
TableColumn column = null;
int headerWidth = 0;
int cellWidth = 0;
//resize the first columan size to feet
for(int i = 0; i<1; i++){
column = table.getColumnModel().getColumn(i);
String colName = tmodel.getColumnName(i);
JTextField t = new JTextField(colName);
headerWidth = new Double((t.getPreferredSize().getWidth())).intValue();
for(int j =0; j<tableData.length ; j++){
t = new JTextField(tableData[j][i].toString());
cellWidth = Math.max(cellWidth, t.getPreferredSize().width);
}
column.setPreferredWidth(Math.max(headerWidth, cellWidth));
}
}
//设置JTable水平滚动条
你的代码是不是这样的:
JTable table = new JTable(model);
getContentPane().add(new JScrollPane(table),Border.CENTER);
如果是这样的,你所看到的默认的滚动条并不是JTable的,而是JScrollPane的。
对于JScroolPane类的构造函数JScrollPane(),其垂直和水平滚动条只是在需要的时候才出现,坦白点说就是当JTable的 HEIGHT>JScrollPane的HEIGHT时,垂直滚动条出现;JTable的WIDTH>JScrollPane的WIDTH 时,水平滚动条出现。
若你一定要让水平滚动条出现,可如下:
getContentPane().add(new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS),Border.CENTER);
ps:
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
是用来设置JTable的列宽度是否随着JTable的变化而变化。
off固定不变。~
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
正解+王道
JTable设置列宽、自动调整相关推荐
- java jtable设置列宽_【Java】JTable组件的构造函数和设置列宽
使用JTable组件 类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JCompone ...
- java jtable设置列宽_Java JTable设置列宽
我有一个JTable,其中我设置列大小如下: table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.getColumnModel().getCo ...
- POI设置列宽 自动调整列宽
for (int i = 0; i <= totalColumn; i++) {sheet.autoSizeColumn((short)i,true); //调整列宽 } 其中totalColu ...
- excel2010设置列宽为像素_使用像素单位设置 EXCEL 列宽或行高
在导出 Excel 的时候, 经常要需要给列设置宽度或给行设置高度, 在使用 NPOI 或 EppPlus 等组件进行操作的时候, 列宽和行高的单位都不是像素, 好像是英寸,具体是啥也说不清. 平常在 ...
- datagridview固定列宽_C# DataGridView 如何设置列宽
问题:C# DataGridView 如何设置列宽?用dataGridView.Colums[0].FillWeight=500;设置无效,界面显示第一列还是很窄. 解答:dataGridView1. ...
- java设置列宽_javaexcel如何设置指定列宽
Java 开发过程当中经常会遇到java表格操作的场景.如何实现轻松.快捷的设置列宽呢,下面让学习啦小编为你带来javaexcel设置指定列宽的方法. javaexcel设置指定列宽的方法: 方法1 ...
- excel2010设置列宽为像素_怎么改变Excel中列宽的像素
展开全部 1.打开EXCEL工作bai簿,在[du开始]选项卡-[单zhi元格]功能组中[格式]下拉dao列表中可以设置[行回高].列宽同样在这答里可以找到设置. 2.在行号上点鼠标右键,在弹出的快捷 ...
- python tableview 列宽_QTableView设置列宽
环境: python 2.7.6, pyqt 4.8.6 想要的效果 默认是均匀分布的列宽. 代码顺序: 1.定义QTableview实例tableview 2.定义QAbstractTableMod ...
- (二)xlwt模块详解--设置列宽、行高
第二篇博客是关于设置Excel中的列宽和行高. 废话不多说,直接上代码看效果! 1.设置列宽 xlwt中列宽的值表示方法:默认字体0的1/256为衡量单位.其创建时使用的默认宽度为2960,即11个字 ...
最新文章
- 独眼巨人反应组织了Java 8库的寒武纪爆发
- nvidia驱动崩了 ubuntu_Ubuntu 16.04安装nVidia驱动失败!
- 基于JAVA+SpringBoot+Mybatis+MYSQL的送水公司后台管理系统
- 1、Intellij IDEA中启动NameServer
- SqlServer之OutPut
- leetcode 【 Sort Colors 】python 实现
- jdk5.0下支持JSR-223的方法
- java考试题精选30道(附答案)
- 【开源微信】Java实现基于Redis公众号模板消息队列
- 服务器机房维护制度,服务器机房的管理制度.doc
- win7默认网关不可用_win7 默认网关不可用
- 说的特别好的一句话,送给每一个热爱编程的人
- 安卓面试中高级安卓开发工程师总结之——大公司面试的方向和套路以及应对方法
- Leetcode高频题目整理(更新)
- 二级路由器设置,二级路由器无法上网
- 什么是MTTF、MTBF、MTRF?
- 手游联运平台:游戏详情页介绍
- Zabbix监控组件介绍、工作原理、监控方式、监控概念
- 新浪博客(sina blog)批量删除代码
- python 文字转表格 openpyxl
热门文章
- MyBatis逆向工程自动生成代码(附数据库表结构)
- Java 设计模式之外观模式
- OpenCASCADE绘制测试线束:形状修复命令之转换命令
- wxWidgets:wxVariantDataCurrency类用法
- wxWidgets:键码KeyCodes
- boost::spirit模块实现将由某个分隔符分隔的任意键/值对解析为 std::vector的测试程序
- boost::ratio_not_equal相关的测试程序
- boost::process::shell相关的测试程序
- boost::mp11::mp_reverse_fold相关用法的测试程序
- boost::core_numbers用法的测试程序