我是Swing的新手,我正在使用JTable对象来显示一些信息。 基本上框架包含JPanel - > GridBagLayout经理。 JPanel包含一个JLabel(“状态表”),一个包含JTable的JScrollPane,一个“排序依据”JButton和一个JComboBox。
如何设置列/列标题的宽度以完全显示其中包含的文本?
我尝试使用
table.getColumnModel().getColumn(i).setPreferredWidth(my_width);
但问题是,为了达到我想要的结果,所有列宽度的总和大于JScrollPane的宽度,所以不会发生任何事情,它们将保持与以前相同。
我尝试使用setSize方法为JScrollPane调整大小以使其与窗口一样大...但是由于GridBagLayout管理器,它似乎不能大于某个大小,但仍然没有适合文本。
其他信息: JTable是根据我实现的模型构建的,我修改的唯一GridBagConstraints是gridx,gridy和fill = BOTH。
答案 0 :(得分:3)
请参阅Table Column Adjuster,以便轻松确定每列的大小。
只应将表格添加到滚动窗格中。您可能还需要使用:
table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
允许每列显示其首选大小。
所有列的宽度之和大于JScrollPane的宽度,因此不会发生任何事情,
你对Gridbag constaints有疑问。组件应该增长以填充所有空间。也许使用BorderLayout会更容易。将滚动窗格添加到中心,并将其他组件添加到北/南。您可以使用不同的布局管理器嵌套面板以获得所需的布局。