插入行后动态增加jtable的高度

时间:2019-02-11 06:45:42

标签: java swing

每次插入行时,我在调整jtable的高度时遇到问题。我尝试对表和表的setsize()使用setPreferredScrollableViewportsize()scrollpane。布局管理器可能有问题吗?

在插入每一行时,我也尝试增加jpanel的大小。顺便说一句,表格位于面板中,而该面板位于jDialog中。我正在NetBeans中使用免费设计进行UI构建。

1 个答案:

答案 0 :(得分:0)

尝试以下操作...但是请确保您的可编辑选项为假!

DefaultTableModel model = (DefaultTableModel)table.getModel();
        table.setModel(model);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        final TableColumnModel colModel = table.getColumnModel();
        for(int column=0; column<table.getColumnCount();column++){
            int width = 15;
            for(int row=0; row<table.getRowCount();row++){
                TableCellRenderer render = table.getCellRenderer(row, column);
                Component component = table.prepareRenderer(render, row, column);
                width = Math.max(component.getPreferredSize().width+1, width);
            }
            if(width>300){
                width = 300;
                colModel.getColumn(column).setPreferredWidth(width);
            }
        }