我有一个JTable,其中一些字段包含长文本,而某些字段包含小文本。

默认情况下,它是这样的:

注意如何不缩短“名称”和“标题”行。

我想知道两件事:

  • 如何手动设置标题的宽度(例如名称,标题,姓氏)
  • 如何根据文本自动调整所有大小。

  • 这是代码:
        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了,但是我要么错过了什么,要么就不在了。

    最佳答案

    我认为通过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的许多有用示例

    10-06 03:41