JTable:根据标题大小设置列宽

时间:2013-08-22 16:53:42

标签: java swing jtable jtableheader preferredsize

我有JTable,标头包含不同类型的字符串:

table = new JTable(new DefaultTableModel(info, myHeader){
        public boolean isCellEditable(int row, int column) {
            //disable table editing
            return false;
        }
    };
    header = table.getTableHeader();
    JScrollPane scroll_pane = new JScrollPane(table);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
    table.getTableHeader().setReorderingAllowed(false);
    table.getTableHeader().setResizingAllowed(false);

myHeader是一个包含表头字符串的字符串数组。 这些字符串具有不同的长度,我希望列长度都等于,并且可以包含myHeader内的最大字符串。实际上,现在标准列长度不允许所有字符串完全适合内部。我该怎么办?

1 个答案:

答案 0 :(得分:2)

看看Table Column Adjuster

您可以手动为所有列调用getColumnHeaderWidth()方法以获得最大宽度(您需要首先将该方法设为公共)。

然后,一旦知道最大宽度,就可以手动设置每列的宽度。有关详细信息,请阅读Setting and Changing Column Widths上的Swing教程。