【发布时间】:2015-07-22 01:19:41
【问题描述】:
我必须在窗口调整大小时调整 JTable 等少数元素的大小。我一直在尝试这段代码,但它不能正常工作:
table.setLocation(0, 23);
Dimension siz = contentPane.getMaximumSize();
table.setSize(siz.height, siz.width - 46);
它调整了我的桌子的大小,但它让它变得无穷无尽,这是我不想要的。另外我想将滚动条连接到这个表,如果可能的话 - 以百分比设置列宽
【问题讨论】:
-
使用布局管理器免费完成这项工作。此外,
JTable应该在JScrollPane中,所以你应该改变它的大小...默认情况下,getMaximumSize返回Integer.MAX_VALUE... -
“我还想将滚动条连接到这个表格” - 布局管理器和
JScrollPane应该自动执行此操作。 -
考虑提供一个runnable example 来证明您的问题。这不是代码转储,而是您正在做的事情的一个示例,它突出了您遇到的问题。这将导致更少的混乱和更好的响应
-
所以?通过拖动调整大小,调整大小是扩展状态的变化。布局管理器会这样做,这就是它们的设计目的
-
看起来您仍然没有使用布局管理器,也没有将
JTable封装在JScrollPane中。请参阅Laying Out Components Within a Container、How to Use Tables 和How to Use Scroll Panes 了解更多详情