java - 如何让 JTable 填满整个可用空间?

标签 java swing jtable layout-manager preferredsize

我想创建一个带有表格的面板,它填充整个可用空间。

我使用以下代码执行此操作:

public class MyFrame extends JFrame {
    public EconomyFrame() throws HeadlessException {
        super("...");

        final JTabbedPane tabbedPane = new JTabbedPane();

        add(tabbedPane);

        final JPanel companiesPanel = new JPanel();

        final CompaniesTableModel companiesModel = new CompaniesTableModel
                (ApplicationStateSingleton.INSTANCE.getPersistence().getCompanies());

        final JTable companiesTable = new JTable(companiesModel);

        ApplicationStateSingleton.INSTANCE.getEventBus().subscribeToPropertyChanges(companiesModel);

        companiesPanel.add(new JScrollPane(companiesTable));

        tabbedPane.addTab("Companies", companiesPanel);
    }
}

但它不起作用,因为当我调整框架大小时,表格仅填充部分可用空间(请参见下面的屏幕截图)。

我该如何修复(使表格填满整个可用空间)?

Screenshot 1

Screenshot 2

最佳答案

使用允许JTable占据整个可用区域的布局管理器,而不是仅使用其组件的JPanel使用的默认FlowLayout首选尺寸

JPanel companiesPanel = new JPanel(new GridLayout());

关于java - 如何让 JTable 填满整个可用空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19467217/

相关文章:

java 绑定(bind) - 如何将 float 绑定(bind)到 jtable 而不获取 -0.0 值?

java - 为什么两个名义上具有相同值的浮点结果不同?

java - 在Java中使用正则表达式验证csv文件

java - 如何在Jtable中制作多行单元格

java - JTreeTable 更新

java - 如何使用 Netbean 的 GUI Builder 单独调整表列的大小?

java - 使用健康检查或 ping 来提高 rest api 性能

java - 将 ICU4C 字节转换为 java 字符

java - JPanel 在绘制图像时显示奇怪的错误

java - 如何实现Button ActionListener来让其他类运行cardLayout?