JTable:根据表头大小设置列宽



我有一个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中最大的字符串。事实上,现在的标准列长度不允许所有字符串都完美地放在里面。我该怎么做?

看看Table Column Adjuster。

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

一旦知道了最大宽度,就可以手动设置每列的宽度。有关详细信息,请阅读有关设置和更改列宽的Swing教程。

最新更新