根据文本大小自动调整JTable列的大小

Dav*_*vid 4 java swing jtable

我有一个JTable,其中一些字段长文本,一些字段很少.

默认情况下,它的外观如下:

在此输入图像描述

请注意如何缩短"名称"和"标题"行.

我想知道两件事:

  1. 如何手动设置标题的宽度(如姓名,标题,姓氏)
  2. 如何根据文本自动调整所有这些大小.

这是代码:

    String[] columnNames = {"Name", "Title", "Surname", "ID"};
    Object[][] testData = {
            {"John", "Mr.", "Doe", "61020384U"},
    };

    nameTable = new JTable(testData, columnNames);
    nameTable.setFont(new Font("Tahoma", Font.PLAIN, 11));
    window.add(new JScrollPane(nameTable));
Run Code Online (Sandbox Code Playgroud)

我看过Swing教程,但我要么错过了一些东西,要么就是不存在.

mKo*_*bel 10

我认为defalut有80像素,但你可以改变它,例如......

TableColumnModel tcm = myTable.getColumnModel();
tcm.getColumn(0).setPreferredWidth(100);     //Name
tcm.getColumn(1).setPreferredWidth(40);    //Title
tcm.getColumn(2).setPreferredWidth(400);    //Surname
tcm.getColumn(3).setPreferredWidth(40);    //ID
Run Code Online (Sandbox Code Playgroud)

编辑

对于你的第二个问题更好看这里,请有很多关于TableColumn的有用示例


cam*_*ckr 7

2.如何根据文本自动调整所有大小.

查看表格列调整程序.