如何在没有JScrollpane的情况下创建JTable

时间:2012-06-08 12:39:22

标签: java swing jtable jpanel jscrollpane

我做了一些相当不错的搜索,我不能正常寻找。基本上我想在JPanel中使用JTable,并且JPanel根据JTable的大小重新调整自身大小。我知道实现JTable的通常方法是使用JScrollpane但在这种情况下它是不必要的,它使我的程序看起来......凌乱。

我无法找到我需要的答案的原因是,每当有人询问JPanel中的JTable时,有人会给出答案,将它放在滚动窗格中。我意识到使用滚动板的优点,但在这种情况下它们并不是有利的。

2 个答案:

答案 0 :(得分:7)

  1. 是的,可以添加JTable to the JPanel,注意几行填充实际屏幕分辨率

  2. 您必须将TableHeader单独添加到容器中,否则不会添加,也不会显示,因为JTable JScrollPane不需要添加或单独定义TableHeader

  3. 最好从JScrollPane.setBorders(null)移除边框,然后禁用VERTICALHORIZONTAL_SCROLLBARNEVER

  4. 缩小宽JScrollPane以适合JTables Dimension可以使用table.setPreferredScrollableViewportSize(table.getPreferredSize());

答案 1 :(得分:0)

尝试覆盖JPanel的getPreferredSize()方法并返回JTable getPreferredSize()的值:

final JTable table = new JTable();

JPanel panel = new JPanel() {
    public Dimension getPreferredSize() {
        return table.getPreferredSize();
    }
}