gpt4 book ai didi

java - 在 JPanel 中创建可滚动 JTable - 使用 GridBagLayout 时不会显示表数据

转载 作者:行者123 更新时间:2023-12-01 07:12:03 28 4
gpt4 key购买 nike

我正在尝试创建一个带有一些任意值的简单可滚动 JTable 并将其放置在 JPanel 中。我遇到一些奇怪的结果,其中 JTable 出现但仅显示列名称,并且似乎挤压了剩余的行。此外,表格出现在面板的中央,我希望它位于顶部。

        // Panel to hold our layer information
JPanel layerPanel = new JPanel(new GridBagLayout());
layerPanel.setBackground(Color.LIGHT_GRAY);
layerPanel.setPreferredSize(new Dimension(200, 200));

GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(0,5,0,5);
c.weightx = 1; c.weighty = 0.0;
c.fill = GridBagConstraints.BOTH;
c.gridx = 0; c.gridy = 0;

String[] columns = { "Show", "Layer" };
Object[][] data = {{"x", "Layer1"},
{"x", "Layer2"}};

// Construct our table to hold our list of layers
JTable layerTable = new JTable(data, columns);
layerTable.getColumnModel().getColumn(0).setPreferredWidth(64);

layerPanel.add(new JScrollPane(layerTable), c);
frame.add(layerPanel);

Link to photo of results

感谢任何帮助,当我使用 GridLayout(1,0) 而不是使用 GridBagLayout 时,代码可以正常工作,所以我感觉我使用了错误的代码。

感谢您的宝贵时间。

最佳答案

您没有在 Y 轴上设置任何“权重”,因此您的 JscrollPane 将不会在该轴上展开。您可以使用:

c.weighty = 1;

解决这个问题。

关于java - 在 JPanel 中创建可滚动 JTable - 使用 GridBagLayout 时不会显示表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12239510/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com