我做了一些相当不错的搜索,我不能正常寻找。基本上我想在JPanel中使用JTable,并且JPanel根据JTable的大小重新调整自身大小。我知道实现JTable的通常方法是使用JScrollpane但在这种情况下它是不必要的,它使我的程序看起来......凌乱。
我无法找到我需要的答案的原因是,每当有人询问JPanel中的JTable时,有人会给出答案,将它放在滚动窗格中。我意识到使用滚动板的优点,但在这种情况下它们并不是有利的。
答案 0 :(得分:7)
是的,可以添加JTable to the JPanel,注意几行填充实际屏幕分辨率
您必须将TableHeader
单独添加到容器中,否则不会添加,也不会显示,因为JTable
JScrollPane
不需要添加或单独定义TableHeader
最好从JScrollPane.setBorders(null)
移除边框,然后禁用VERTICAL
和HORIZONTAL_SCROLLBAR
至NEVER
缩小宽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();
}
}