jTable-如何仅显示有限的列?JAVA

jTable-如何仅显示有限的列?JAVA,java,swing,jtable,jdeveloper,Java,Swing,Jtable,Jdeveloper,这是我在DataAccessLayer中创建表的代码 private TableModel getResultSetAsDefaultTableModel(ResultSet rs) { try { String[] columnHeadings = new String[0]; Object[][] dataArray = new Object[0][0]; ResultSetMetaData md = rs.getMetaData

这是我在DataAccessLayer中创建表的代码

private TableModel getResultSetAsDefaultTableModel(ResultSet rs) {

    try {

        String[] columnHeadings = new String[0];
        Object[][] dataArray = new Object[0][0];

        ResultSetMetaData md = rs.getMetaData();
        int columnCount = md.getColumnCount();

        for (int i = 1; i <= columnCount; i++) {
            String columnName = md.getColumnName(i);
            columnHeadings = Arrays.copyOf(columnHeadings, columnHeadings.length + 1);
            columnHeadings[i - 1] = columnName;
        }

        int r = 0;

        while (rs.next()) {

            Object[] row = new Object[columnCount];
            for (int i = 1; i <= columnCount; i++) {
                row[i - 1] = rs.getObject(i);
            }

            dataArray = Arrays.copyOf(dataArray, dataArray.length + 1);
            dataArray[r] = row;

            r++;
        }

        DefaultTableModel dtm = new DefaultTableModel(dataArray, columnHeadings) {
            public boolean isCellEditable(int row, int column) {

                return false;
            }
        };

        return dtm;

    } catch (SQLException ex) {

        Logger.getLogger(Dataaccesslayer.class.getName()).log(Level.SEVERE, null, ex);
    }

    return null;

}
**这会导致一些复杂情况,因为我的一个表有50个不同的列,因此您无法读取列名或单元格中的内容

问题是表的值是由元数据确定的

对于所有表,我希望将显示的列限制为特定的数字5。 我该怎么做**

亲切问候,


Chris

如果您想删除表,可以删除表

int amountColumns = table.getColumnModel().getColumnCount(); //count columns
TableColumn c6 = table.getColumnModel().getColumn(6); //identif a random column
table.getColumnModel().removeColumn(c6); //remove this column

我希望这有助于…

我不会删除它们,而是将它们的大小更改为0

int amountColumns = table.getColumnModel().getColumnCount(); //count columns
TableColumn c6 = table.getColumnModel().getColumn(6); //identif a random column
table.getColumnModel().setMin(0);
table.getColumnModel().setMax(0);
table.getColumnModel().setPreferredWidth(0);

就像我在你的其他帖子中回答你一样…

还有其他帖子?!哦,那么让我们把这个关上!你能等一下吗?我想我还不能,或者,我可以吗?是的,这里:。我不能设置为保留:拥有3000声誉的用户每天最多可以投50票。当一个问题的票数接近5票时,它会被标记为[暂停],并且不再接受答案。rtfm,哈哈,对了,我现在自己发现了^^真遗憾,重复的应该更容易标记