Java 按行数划分的动态JTable大小

Java 按行数划分的动态JTable大小,java,swing,printing,jtable,jscrollbar,Java,Swing,Printing,Jtable,Jscrollbar,我一直在搜索,但没有找到一个好的答案,我对Java的深入部分有点陌生,所以只是问问。。如何根据行大小调整或动态调整JTable,而不是使用垂直滚动条 我的方法(不起作用): 在将数据添加到表中之后,我通过其父级调整表的大小,因为表会自动调整其行大小,但滚动窗格不会,而是在添加数据之前保持不变。我已经尝试过以下方法: itemTable.setPreferredScrollableViewportSize(...); jScrollPane.setPreferredSize(...);//usin

我一直在搜索,但没有找到一个好的答案,我对Java的深入部分有点陌生,所以只是问问。。如何根据行大小调整或动态调整
JTable
,而不是使用垂直滚动条

我的方法(不起作用):

在将数据添加到表中之后,我通过其父级调整表的大小,因为表会自动调整其行大小,但滚动窗格不会,而是在添加数据之前保持不变。我已经尝试过以下方法:

itemTable.setPreferredScrollableViewportSize(...);
jScrollPane.setPreferredSize(...);//using the itemTable width and height
jScrollPane.setSize(...);//using the itemTable width and height

还是没用,有人能帮我吗?或者其他解决方案?

“如何根据行调整
JTable
的大小或动态调整其大小,而不是使用垂直滚动条?”。。。为什么?如果你能说服我,抛开一种技术(“使用滚动窗格”)是个好主意,我还有一些其他问题,这种技术对用户来说是最不意外的,几十年来已经在成千上万的GUI中成功实现。原因是,我试图打印一个面板,上面有一个表,以便更容易地组织项目的显示,因此我希望该表显示其所有行,因为我们不能在纸上滚动。生成纸质报告与生成GUI是完全不同的过程。对于GUI,使用JScrollPane。对于纸质报告,请使用报告编写器库或您自己,将每张纸视为缓冲区图像的位置。不要尝试设置Swing组件的首选大小!!!布局管理器的工作是设置零部件尺寸/位置。如果更改首选的可滚动视口大小,则需要
revalidate()
包含滚动窗格的父面板。查看:以获取一个示例,帮助您开始学习。