【发布时间】:2017-01-30 12:44:30
【问题描述】:
不幸的是,我已经多次看到这个问题,但不幸的是,我不知道自己做得足够好,无法解释我必须在自己的代码中实现的内容。
我在 netbeans 中使用 GUI 编辑器在此之上创建了一个 JScrollPane 和一个 JPanel。我知道我可以在运行时创建这些组件以及其他所有内容,但这被证明是有问题的,到目前为止,只需在编辑器中添加滚动窗格和面板并在运行时向它们添加组件对我来说一直有效。
到目前为止,创建组件并将它们添加到面板中没有问题。我面临的问题是滚动窗格不会自行更新以使用户能够进一步向下滚动以查看底部创建的组件。每次按下按钮时,我都会生成“条目”,当前创建一个 JTextField 并将此组件添加到面板中,稍后将添加更多组件,但现在这只是实验。
一旦“条目”的“列表”超出窗口的限制,则必须调整窗口的大小才能在底部查看组件,但在一定数量的条目(大约 25-30 个)之后,组件就没有了由于滚动条不会向下滚动面板,因此可视时间更长。
这就是我在运行时添加组件的方式...
JTextField txtName1 = new JTextField();
txtName1.setLocation(10, 90);
txtName1.setSize(135, 25);
pnlContainer.add(txtName1);
“pnlContainer”附加在“jspContainer”之上,这是我的 JScrollPane,我正在使用“repaint()”方法让组件在面板上可见。
到目前为止,在运行时添加组件已经奏效,所有组件都是可见且可交互的。
我对一般编程相当陌生,只有几年的经验,非常感谢任何可能有帮助的文档、教程或其他任何东西。文档总是受欢迎的,因为我还有很多东西要学。
【问题讨论】:
-
我也很感谢 cmets 关于如何改进我提出问题的方式,我知道以前有人问过,但我不明白我正在查看的一些示例,因此不能应用相同的示例我的代码的原则。此外,由于我对此很陌生,我不知道我应该问什么问题以及我应该如何问他们才能找到相关结果。
-
1) 获取tour 并浏览help center,然后阅读How to Ask 以及如何发布有效的minimal reproducible example 或Short, Self Contained, Correct Example。请注意,此问题是题外话,因为它要求提供教程/文档,并且缺少演示您的问题的 MCVE。
-
我只是想让滚动窗格使用户能够向下滚动整个程序。我不完全理解 JScrollPane 是如何工作的,netbeans 文档并没有真正帮助太多。我有一个 JScrollPane 和一个 JPanel ,在执行期间,当按下按钮时,会向面板中添加更多组件,但是当面板上生成了这么多组件时,它们会继续离开程序窗口的底部,这这就是为什么我想要一个滚动条,因为添加的组件数量将超过最大窗口高度。
-
滚动窗格根本不起作用,我不完全确定原因。该组件在那里并且在运行时可见,但是随着组件的生成,滚动条没有更新以表示用户可以进一步向下滚动,您也不能