我想存储像JButton,JTextField,JTextArea等所有组件在同一个ArrayList中,然后循环它并将每个组件添加到JFrame中。我尝试将它们存储在ArrayList中,但是当我通过它并将其包含到框架中的每个组件添加到框架中时,没有任何框架出现。有谁知道这可以做到吗?提前致谢。在ArrayList中存储组件
回答
尝试宣告ArrayList
这样的:
List<JComponent> = new ArrayList<JComponent>();
上述工作,因为JComponent
是JButton
,JTextField
,JTextArea
一个共同的祖先 - 也就是说,它是常见的所有JComponent上一个超类。
我不清楚:为什么要先将组件添加到ArrayList
?直接将它们添加到JFrame
。
继续用这样的:
public class Example {
public static void main(String[] args) {
JFrame frame = new JFrame();
List<Component> components = new ArrayList<Component>();
components.add(new JButton("test1"));
components.add(new JButton("test3"));
components.add(new JButton("test3"));
frame.setLayout(new FlowLayout());
for(Component component: components)
frame.getContentPane().add(component);
frame.pack();
frame.setVisible(true);
}
}
- 添加布局管理你的框架
- 呼叫
pack()
来调整框架根据你的组件 - 设置帧可见
对于这个问题的海报只是一个额外的评论:这项工作得益于'FlowLayout',它支持动态数量的组件,并且您可以添加组件而无需指定约束条件,它们都将显示出来。对于其他布局管理者来说,它可能并不那么简单。 – Robin
你知道如何使用布局管理器吗?
布局管理器是一个对象,它实现了LayoutManager接口*并确定容器中组件的大小和位置。虽然组件可以提供大小和对齐方式提示,但容器的布局管理器对容器内组件的大小和位置有最终的说法。
不幸的是,我不知道,但它是我努力学习的东西,迄今没有成功。我已经尝试过数百万次,但从来没有组件去我想要他们去的地方。 –
如果您需要一个gui构建器,您可以尝试使用NetBeans: [NetBeans功能 - Swing GUI Builder](http://netbeans.org/features/java/swing.html) – ceklock
我已经在使用NetBeans,但我认为它生成的代码太复杂了,我还不明白。 –
- 1. 存储在ArrayList中
- 2. 存储在ArrayList中
- 3. 使用ArrayList在java中存储文件
- 4. 在SQLite中存储arraylist的arraylist
- 5. 在sharedPreferences中存储Arraylist
- 6. 在HashMap中存储ArrayList
- 7. 在ArrayList中存储jsonobject
- 8. 将arraylist存储在IsolatedStorage中
- 9. 在ArrayList中存储Double
- 10. 无法存储在ArrayList中
- 11. 接口存储在ArrayList中
- 12. 在arraylist中存储对象
- 13. 将对象数组存储到Arraylist中
- 14. 如何在Redis缓存中存储ArrayList?
- 15. urenraintity arrayList存储
- 16. 读取文件并存储到ArrayList中
- 17. 如何在Java中的ArrayList中存储大量数组?
- 18. ArrayList不存储值
- 19. 是否有存储在ArrayList中
- 20. 在会话中存储ArrayList值
- 21. 在ArrayList中存储空值并设置
- 22. Android:在SharedPreferences中存储ArrayList <T>?
- 23. c# - 如何在ViewState中存储ArrayList?
- 24. 存储JsonElement在ArrayList中导致错误
- 25. 在ArrayList中存储对象的引用
- 26. 在数据库中存储.Net ArrayList
- 27. 在arraylist中存储值并打印它
- 28. 如何在SharedPreferences中存储ArrayList
- 29. 如何解析JSON数组并存储在java中的arraylist?
- 30. 在ArrayList中存储二维数组索引?
你能亲切地发布您的代码? – ControlAltDel
为了尽快提供更好的帮助,请发布[SSCCE](http://www.sscce.org)。 – wchargin
扩展您的问题,我想知道是否有一种方法可以将所有JComponents“一次”添加到使用列表的JFrame中。可能吗?如果是的话,它会比一个一个的放置更快吗?我知道我们可能正在谈论几百毫秒组件的毫秒数。要求更多的好奇心。 – geo