4

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

我找不到我需要的答案的原因是每次有人在 JPanel 中询问 JTable 时,都会有人给出将其放入滚动窗格的答案。我知道使用滚动窗格的优点,但在这种情况下它们没有优势。

4

2 回答 2

8
  1. 是的,可以将JTable 添加到 JPanel,注意有几行填充真实屏幕分辨率

  2. 您也必须单独添加到TableHeader容器中,否则不会添加或不可见,因为不需要单独添加或定义JTableJScrollPaneTableHeader

  3. 更好的办法是从禁用和JScrollPane.setBorders(null)禁用VERTICALHORIZONTAL_SCROLLBAR删除边界NEVER

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

于 2012-06-08T12:48:06.783 回答
0

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

final JTable table = new JTable();

JPanel panel = new JPanel() {
    public Dimension getPreferredSize() {
        return table.getPreferredSize();
    }
}
于 2012-06-08T12:51:33.967 回答