java - 为什么setLayout方法不能与JPanel的ArrayList一起使用

标签 java swing arraylist layout-manager

我对 Swing 很陌生,我有一个关于布局管理器的问题。当我使用 setLayout() 为单个容器放置布局管理器时,我没有任何问题。示例:

JPanel oneContainer = new JPanel();
oneContainer.setLayout(new GridBagLayout());

这很好用。

我想要做的是为 ArrayList 中的每个容器设置特定的布局管理器。 有什么方法可以做到这一点,而无需使用循环遍历每个元素。

示例:

ArrayList<JPanel> multipleContainers = new ArrayList<>();
multipleContainers.setLayout(new GridBagLayout());

(或者类似的东西,你明白了,我知道提供的代码显然是错误的,我也知道要为单个 ArrayList 元素设置布局管理器,我只需添加 .get(num )在“multipleContainers”之后)TIA

最佳答案

抱歉!你只需要忍住并以困难的方式去做就可以了:)实际上,使用 for-each 循环并不那么难:

for (JPanel p : multipleContainers)
    p.setLayout(new GridBagLayout());

或者,正如您已经猜测的那样,有一种老式的方法:

for (int i = 0; i < multipleContainers.size(); ++i)
    multipleContainers.get(i).setLayout(new GridBagLayout());

关于java - 为什么setLayout方法不能与JPanel的ArrayList一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44037980/

相关文章:

java - 操作++/-- 的参数无效

java - 有什么比从末端迭代 ArrayList 更快的吗?

java - 安卓编程;得到一个小错误

java - 让主方法等待较小的方法(java)

java - 如何将 JMenu 的弹出窗口居中?

java - 为什么从 arraylist 打印时出现数组越界?

Java:如何比较两个 int[] 数组中的非重复元素?

java - Android Recyclerview - 如何根据 child 的大小让每行有不同的列数?

java - 日历中的事件列表

java - 我可以从小程序触发对话框吗?