我想在我的程序中实现一种机制,当列太长而无法在 JScrollPane 的视口(viewport)中完全看到时,该机制将自动重新缩放 JScrollPane:
例如我的 JTable 看起来像:
___________ JScrollPanel _____________
| |
| __________ JTable _______________|_ ___
| |________|______|______|_____|____|_|___|
| | | | | | | | |
| |________|______|______|_____|____|_|___|
|______________________________________|
现在如何设置自动将 JscrollPanel 调整到更宽的 JTable
___________ JScrollPanel ______________________
| <------>|
| __________ JTable _________________ ___ |
| |________|______|______|_____|____|_|___| |
| | | | | | | | | |
| |________|______|______|_____|____|_|___| |
| <------->|
|______________________________________________|
有时我从 JTableModel 获取数据,但我不知道数据在 JTable header 中的长度。
最佳答案
JTable
实现了 Scrollable
,因此您可以利用 getPreferredScrollableViewportSize()
返回的结果。默认实现可能并不理想,但您可以覆盖该方法以获得更好的适应性。这example返回表的 getRowHeight()
的倍数。对于列宽,您可能想尝试 setAutoResizeMode()
可用的 AUTO_RESIZE_*
设置,已讨论 here .
关于java - 如何使用 JTable 设置 JScrollPane 以自动调整内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24716795/