下面這個方法 你可以用來設置列寬,在你需要的地方調用一下就可以了

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设置列宽、自动调整相关推荐

  1. java jtable设置列宽_【Java】JTable组件的构造函数和设置列宽

    使用JTable组件 类层次结构图: java.lang.Object --java.awt.Component --java.awt.Container --javax.swing.JCompone ...

  2. java jtable设置列宽_Java JTable设置列宽

    我有一个JTable,其中我设置列大小如下: table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.getColumnModel().getCo ...

  3. POI设置列宽 自动调整列宽

    for (int i = 0; i <= totalColumn; i++) {sheet.autoSizeColumn((short)i,true); //调整列宽 } 其中totalColu ...

  4. excel2010设置列宽为像素_使用像素单位设置 EXCEL 列宽或行高

    在导出 Excel 的时候, 经常要需要给列设置宽度或给行设置高度, 在使用 NPOI 或 EppPlus 等组件进行操作的时候, 列宽和行高的单位都不是像素, 好像是英寸,具体是啥也说不清. 平常在 ...

  5. datagridview固定列宽_C# DataGridView 如何设置列宽

    问题:C# DataGridView 如何设置列宽?用dataGridView.Colums[0].FillWeight=500;设置无效,界面显示第一列还是很窄. 解答:dataGridView1. ...

  6. java设置列宽_javaexcel如何设置指定列宽

    Java 开发过程当中经常会遇到java表格操作的场景.如何实现轻松.快捷的设置列宽呢,下面让学习啦小编为你带来javaexcel设置指定列宽的方法. javaexcel设置指定列宽的方法: 方法1 ...

  7. excel2010设置列宽为像素_怎么改变Excel中列宽的像素

    展开全部 1.打开EXCEL工作bai簿,在[du开始]选项卡-[单zhi元格]功能组中[格式]下拉dao列表中可以设置[行回高].列宽同样在这答里可以找到设置. 2.在行号上点鼠标右键,在弹出的快捷 ...

  8. python tableview 列宽_QTableView设置列宽

    环境: python 2.7.6, pyqt 4.8.6 想要的效果 默认是均匀分布的列宽. 代码顺序: 1.定义QTableview实例tableview 2.定义QAbstractTableMod ...

  9. (二)xlwt模块详解--设置列宽、行高

    第二篇博客是关于设置Excel中的列宽和行高. 废话不多说,直接上代码看效果! 1.设置列宽 xlwt中列宽的值表示方法:默认字体0的1/256为衡量单位.其创建时使用的默认宽度为2960,即11个字 ...

最新文章

  1. 独眼巨人反应组织了Java 8库的寒武纪爆发
  2. nvidia驱动崩了 ubuntu_Ubuntu 16.04安装nVidia驱动失败!
  3. 基于JAVA+SpringBoot+Mybatis+MYSQL的送水公司后台管理系统
  4. 1、Intellij IDEA中启动NameServer
  5. SqlServer之OutPut
  6. leetcode 【 Sort Colors 】python 实现
  7. jdk5.0下支持JSR-223的方法
  8. java考试题精选30道(附答案)
  9. 【开源微信】Java实现基于Redis公众号模板消息队列
  10. 服务器机房维护制度,服务器机房的管理制度.doc
  11. win7默认网关不可用_win7 默认网关不可用
  12. 说的特别好的一句话,送给每一个热爱编程的人
  13. 安卓面试中高级安卓开发工程师总结之——大公司面试的方向和套路以及应对方法
  14. Leetcode高频题目整理(更新)
  15. 二级路由器设置,二级路由器无法上网
  16. 什么是MTTF、MTBF、MTRF?
  17. 手游联运平台:游戏详情页介绍
  18. Zabbix监控组件介绍、工作原理、监控方式、监控概念
  19. 新浪博客(sina blog)批量删除代码
  20. python 文字转表格 openpyxl

热门文章

  1. MyBatis逆向工程自动生成代码(附数据库表结构)
  2. Java 设计模式之外观模式
  3. OpenCASCADE绘制测试线束:形状修复命令之转换命令
  4. wxWidgets:wxVariantDataCurrency类用法
  5. wxWidgets:键码KeyCodes
  6. boost::spirit模块实现将由某个分隔符分隔的任意键/值对解析为 std::vector的测试程序
  7. boost::ratio_not_equal相关的测试程序
  8. boost::process::shell相关的测试程序
  9. boost::mp11::mp_reverse_fold相关用法的测试程序
  10. boost::core_numbers用法的测试程序