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

Java 使用Netbeans IDE动态更改jtable中列的宽度,java,swing,netbeans,jtable,Java,Swing,Netbeans,Jtable,在netbeans和JavaSwing中开发应用程序 我想更改jtable中列的宽度 调整单元格中数据的长度 在谷歌搜索之后,我偶然发现了宾克利的博客 在下面的链接上 下面是代码片段 { final TableCellRenderer renderer = getTableHeader() .getDefaultRenderer(); for (int i = 0; i < getColumnCount(); ++i) getC

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

下面是代码片段

{

    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;
}
{
最终TableCellRenderer=getTableHeader()
.getDefaultRenderer();
对于(int i=0;i
我希望有人能帮我实施这些准则

另一方面,如果有另一个解决方案,我们很乐意看一看。

试试这个:

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*/);
        }

    }
publicstaticvoidresizerow(JTable表){
TableColumnModel columnModel=table.getColumnModel();
对于(int i=0;i
签出。

有多个选项。您可以设置所需的方式;)我在jscrollpane中使用jtable,因此我必须在中禁用自动调整大小属性netbeans@SchinPasaikarwll check and get Back我关心的是以这种方式重写表prepareRenderer(但这就是我)。相反,我会使用这个概念,但应用它时,必须在数据实际更改时调用,而不必在绘制周期中更改组件的状态!状态包括模型和制备者是油漆周期的一部分。相反,在tableModelListener中的数据更改后,如果发生可能影响大小的事件,请更新大小。我找不到用于此的库。TablecolumnAdjuster@Krishna,你点击了链接了吗?@Krishna,
我读了整个区块。
你读了
了吗?获取代码标题并点击链接了吗?ter?如果有表列调整器,哪一个链接。那就应该有图书馆了,是吗???