gpt4 book ai didi

java - 为什么我没有获得正常运行的 JScrollPane?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:51:26 29 4
gpt4 key购买 nike

我有一个 JFrame 窗口,我想在它的中间添加一个可滚动的 JTable。我有一个名为 collectionTableScrollPane() 的方法,它会生成 JScrollPane(我知道这一定会起作用)。

然后我继续将它添加到我的 mainPanel 面板。但是,我希望在 JScrollPane 的左侧和右侧有一些强制的 30px 填充。从逻辑上讲,我会创建一个带有居中 FlowLayout 的控股 JPanel,并在 JScrollPane 的任一侧添加 Box.createHorizo​​ntalStrut(30)

JPanel tableHolderPanel = new JPanel(new FlowLayout());
mainPanel.add(tableHolderPanel);
tableHolderPanel.add(Box.createHorizontalStrut(30));
tableHolderPanel.add(collectionTableScrollPane());
tableHolderPanel.add(Box.createHorizontalStrut(30));

但是,我得到了一个奇怪的结果,窗口中间的 JScrollPane(用箭头表示)变得无效了。

有人知道问题出在哪里吗?

1

请注意,JTable 包含四行,其中只有两行可见。

最佳答案

过去,当我在带有 FlowLayout 的面板中使用 JScrollPane 时,我遇到了一些问题。这种行为可能很棘手,当内容增长时,水平滚动条可能会出现,或者 FlowLayout 应该添加一个新行。

在您的情况下,我将用 BorderLayout 替换 FlowLayout :

JPanel tableHolderPanel = new JPanel(new BorderLayout());
mainPanel.add(tableHolderPanel);
tableHolderPanel.add(Box.createHorizontalStrut(30), BorderLayout.WEST);
tableHolderPanel.add(collectionTableScrollPane(), BorderLayout.CENTER);
tableHolderPanel.add(Box.createHorizontalStrut(30), BorderLayout.EAST);

关于java - 为什么我没有获得正常运行的 JScrollPane?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12155654/

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