Java Swing JTable和JScrollPane适合列宽
我是Swing的新手,我正在使用JTable对象来显示一些信息。 基本上,框架包含一个JPanel->GridBagLayout管理器。 JPanel包含一个JLabel(“状态表”)、一个包含JTable的JScrollPane、“排序依据”JButton和一个JComboBox 如何设置列/列标题的宽度以完全显示其中包含的文本 我试着用Java Swing JTable和JScrollPane适合列宽,java,swing,jtable,jscrollpane,Java,Swing,Jtable,Jscrollpane,我是Swing的新手,我正在使用JTable对象来显示一些信息。 基本上,框架包含一个JPanel->GridBagLayout管理器。 JPanel包含一个JLabel(“状态表”)、一个包含JTable的JScrollPane、“排序依据”JButton和一个JComboBox 如何设置列/列标题的宽度以完全显示其中包含的文本 我试着用 table.getColumnModel().getColumn(i).setPreferredWidth(my_width); 但问题是,为了获得我想
table.getColumnModel().getColumn(i).setPreferredWidth(my_width);
但问题是,为了获得我想要的结果,所有列的宽度之和都大于JScrollPane的宽度,因此不会发生任何事情,它们将保持与以前相同
我尝试使用JScrollPane的setSize方法来调整它的大小,使其与窗口一样大。。。但是由于GridBagLayout管理器的缘故,它似乎不能超过某个特定的大小,而这个大小仍然不适合文本
其他信息:
JTable是从我已经实现的一个模型构建的,我唯一修改的gridbag约束是gridx、gridy和fill=BOTH
请参阅,以获取调整每列大小的简便方法
只应将表添加到滚动窗格中。您可能还需要使用:
table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
允许每列以其首选大小显示
所有列的宽度之和大于JScrollPane的宽度,因此不会发生任何事情
你对gridbag警察有意见。组件应该增长以填充所有空间。也许使用边界布局会更容易。将滚动窗格添加到中间,并将其他组件添加到北/南。您可以使用不同的布局管理器嵌套面板,以获得所需的布局。有关调整每列大小的简单方法,请参阅
只应将表添加到滚动窗格中。您可能还需要使用:
table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
允许每列以其首选大小显示
所有列的宽度之和大于JScrollPane的宽度,因此不会发生任何事情
你对gridbag警察有意见。组件应该增长以填充所有空间。也许使用边界布局会更容易。将滚动窗格添加到中间,并将其他组件添加到北/南。您可以使用不同的布局管理器嵌套面板,以获得所需的布局。有关调整每列大小的简单方法,请参阅
只应将表添加到滚动窗格中。您可能还需要使用:
table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
允许每列以其首选大小显示
所有列的宽度之和大于JScrollPane的宽度,因此不会发生任何事情
你对gridbag警察有意见。组件应该增长以填充所有空间。也许使用边界布局会更容易。将滚动窗格添加到中间,并将其他组件添加到北/南。您可以使用不同的布局管理器嵌套面板,以获得所需的布局。有关调整每列大小的简单方法,请参阅
只应将表添加到滚动窗格中。您可能还需要使用:
table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
允许每列以其首选大小显示
所有列的宽度之和大于JScrollPane的宽度,因此不会发生任何事情
你对gridbag警察有意见。组件应该增长以填充所有空间。也许使用边界布局会更容易。将滚动窗格添加到中间,并将其他组件添加到北/南。您可以使用不同的布局管理器嵌套面板,以获得所需的布局。使用BorderLayout。谢谢,我和BorderLayout合作过。谢谢,我和BorderLayout合作过。谢谢,我和BorderLayout合作过。谢谢