使用Netbeans IDE动态更改jtable中列的宽度



使用netbeans和java swing开发应用程序我想改变jtable中列的宽度调整为单元格中的数据长度在谷歌上搜索之后,我偶然发现了宾克莱的博客在以下链接

http://binkley.blogspot.com/2006/01/getting-jtable-columns-widths-to-fit.html

下面是代码片段

{
    final TableCellRenderer renderer = getTableHeader()
            .getDefaultRenderer();
    for (int i = 0; i < getColumnCount(); ++i)
        getColumnModel().getColumn(i).setPreferredWidth(
                renderer.getTableCellRendererComponent(this,
                        getModel().getColumnName(i), false, false, 0, i)
                        .getPreferredSize().width);
}
public Component prepareRenderer(final TableCellRenderer renderer,
        final int row, final int column) {
    final Component prepareRenderer = super
            .prepareRenderer(renderer, row, column);
    final TableColumn tableColumn = getColumnModel().getColumn(column);
    tableColumn.setPreferredWidth(max(
            prepareRenderer.getPreferredSize().width,
            tableColumn.getPreferredWidth()));
    return prepareRenderer;
}

希望有人帮助实现这些代码。

另一方面,如果有其他的解决办法,我很乐意看看。

查看表列调整器

试试这个:

jtable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);

您可以编写自己的自定义方法,该方法将在添加或删除该行时触发。示例代码:

public static void resizeRow(JTable table) {
        TableColumnModel columnModel = table.getColumnModel();
        for (int i = 0; i < columnModel.getColumnCount(); i++) {
            TableColumn column = columnModel.getColumn(i);
            column.setPreferredWidth(/*your logic of setting width*/);
        }
    }

相关内容

  • 没有找到相关文章

最新更新