【发布时间】:2020-07-09 00:02:55
【问题描述】:
JAVA 摆动问题
我想根据代表按钮文本的字符串列表创建一个 JButton 列表。 在我的第一步中,我从外部文本文件中收集按钮文本的数据。此数据存储在 data 变量中。
List<String> data = ReadFile("texts.txt")
现在我想创建 JButtons 列表,命名按钮。我在那里设置了他们的文本和他们的边界。边界是相对于索引的,因此按钮被放置在彼此下方。最后,我将按钮添加到框架和按钮列表中。
List<JButton> buttons = new ArrayList<>();
for (int index = 0; index < data.size(); index++) {
JButton button = new JButton();
button.setText(data.get(index));
button.setBounds(0, index*50, 100, 50);
add(button);
buttons.add(button);
但是当我执行这个时,最后一个按钮结束了,当我不将鼠标悬停在它们上面时,第一个按钮也会消失,但这是基于最后一个按钮放在上面的事实:
Picture of the executed script
最后一个按钮有框架的大小,没关系,如果我调整框架的大小:
我希望有人可以帮助我或告诉我在哪里可以找到帮助。谢谢。
【问题讨论】:
-
1) 为了尽快获得更好的帮助,edit 添加minimal reproducible example 或Short, Self Contained, Correct Example。 2) Java GUI 必须在不同的语言环境中使用不同的 PLAF 在不同的操作系统、屏幕尺寸、屏幕分辨率等上工作。因此,它们不利于像素完美布局。而是使用布局管理器,或 combinations of them 以及 white space 的布局填充和边框。
标签: java swing loops jbutton bounds