如何根据JTable的大小调整JScrollPane?

时间:2018-03-26 07:05:50

标签: java swing jtable jscrollpane preferredsize

我现在有一张表,它显示了一个类列表,除了在滚动窗格内部格式化之外,一切正常。这就是我现在所拥有的。

    String[] columns = {"Class","Period","Size", "Honors/AP"};
    JTable classTable = new JTable(new DefaultTableModel(new Object[][] {}, columns));
    DefaultTableModel model = (DefaultTableModel)classTable.getModel();

    //populating the table based on the number of classes that the teacher has
    for (Class c: t.getClasses()) {
        model.addRow(new Object[]{c.getClassName(),c.getPeriod(),c.getSize(),c.isHonorsAP()});
    }
    if (classTable.getRowCount()==0)
        model.addRow(new Object[]{});

    JScrollPane scrollPane = new JScrollPane(classTable);
    classTable.setPreferredSize(new  Dimension(700,100));
    classTable.setPreferredScrollableViewportSize(classTable.getPreferredSize());
    classTable.setFillsViewportHeight(true);
    if (classTable.getPreferredSize().getHeight() < scrollPane.getPreferredSize().getHeight())
        scrollPane.setPreferredSize(classTable.getPreferredSize());

所以一方面的问题是,当没有足够的行来填充表格的首选大小时,它会在底部留下额外的空间,我试图将其删除。

然后在另一端,当有更多行可以适应时,我需要保留大小但添加滚动条。 我现在真的很困惑。任何帮助将不胜感激

0 个答案:

没有答案