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

时间:2011-08-11 22:07:33

标签: java swing jtable

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

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

enter image description here

注意“姓名”和“标题”行没有缩短。

我想知道两件事:

  1. 如何手动设置标题的宽度(如姓名,标题,姓氏)
  2. 如何根据文字自动调整所有这些内容。
  3. 以下是代码:

        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));
    

    我看过Swing Tutorials,但我要么错过了一些东西,要么就不存在。

2 个答案:

答案 0 :(得分: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

修改

你的第二个问题是更好看here,请关于TableColumn有很多有用的例子

答案 1 :(得分:6)

  

2.如何根据文字自动调整所有这些内容。

查看Table Column Adjuster