gpt4 book ai didi

Java:即使设置了 `setVerticalScrollBarPolicy` 和其他选项,滚动条也不会出现

转载 作者:行者123 更新时间:2023-12-01 17:19:31 26 4
gpt4 key购买 nike

我的 JScrollpane 遇到问题。我正在从列表中向其添加标签。添加正在工作,我看到了标签。我不知道添加的标签数量,因此滚动 Pane 的边框似乎不够。这就是使用滚动 Pane 的优点,这样我就可以在需要时向下滚动。但滚动条没有出现。我知道有很多类似的问题,但我尝试了几乎所有提出的建议。我尝试了 setPreferredSize()、setLayout()、scrollPaneApps.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_​​ALWAYS),但没有任何效果。

public DisplayProperties() {

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
setContentPane(contentPane);
contentPane.setLayout(null);
contentPane.setPreferredSize(new Dimension(450,300));

JScrollPane scrollPane1 = new JScrollPane();
scrollPane1.setBounds(15, 54, 195, 202);
scrollPane1.setViewportBorder(new LineBorder(new Color(0, 0, 0)));
scrollPane1.setPreferredSize(new Dimension(185,195));
scrollPane1.setLayout(null);
scrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
contentPane.add(scrollPane1);


int b = 0;

for(String s : XMLParser.ApplicationsListGUI)
{
b = b + 20;
JLabel lbl = new JLabel("lbl"+s);
lbl.setText(s);
lbl.setBounds(10,b,100,15);
scrollPane1.add(lbl);
scrollPane1.revalidate();
lbl.setVisible(true);
}
}

那为什么这个滚动条没有出现呢?

最佳答案

您似乎涉及两个 JScrollPanes:scrollPaneApps(您设置了垂直滚动条策略),您尝试向其添加组件,但您从不将其添加到 GUI;scrollPane1(它)您不设置策略,从不添加组件,但添加到GUI。抱歉,但这太疯狂了。您需要修复此问题,以便您的代码有意义:

  • 添加实际的 JScrollPane,其垂直滚动条策略设置为 GUI。如果它没有添加到 GUI,那么它就永远不会被看到。
  • 不要直接将组件添加到 JScrollPane,而是通过 setViewportView(...) 方法添加到其 JViewport。或者,您可以向 JScrollPane 构造函数添加一个组件,该组件只不过是用于将其添加到视口(viewport)的语法糖。
  • 避免空布局和绝对定位(避免setBounds(...))。使用这些将使你的 GUI 变得僵硬、丑陋,并且以后几乎不可能改进。 永远不要将 JScrollPane 的布局设置为 null,因为如果这样做,它将停止工作。完全正确。

关于Java:即使设置了 `setVerticalScrollBarPolicy` 和其他选项,滚动条也不会出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19742543/

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