java - 将 JLabels 的 ArrayList 添加到 JPanel 中

标签 java arraylist

我目前正在尝试使用 Java,我创建了一个 JFrame,以便在执行程序时在屏幕上弹出。

我还创建了 JLabels 的 ArrayList 和 for 循环以递归地将 JLabels 添加到数组中。

到目前为止,我“认为”我已经成功了,但现在我希望能够使用此 ArrayList 将 ArrayList 的元素递归地添加到 Jframe 内的可视 JLabels 中。

这是我的整个代码(它很小)

public class Executable {
     private static JFrame view; 
     private static JLabel image; 

public static void main(String[] args) { 
    view = new JFrame("adding labels"); 
    view.setBounds(0,0,300,1000); 
    view.setLocationRelativeTo(null);
    view.setVisible(true); 

    ArrayList<JLabel> label = new ArrayList<JLabel>(); 

    for(int i=0; i < 20; i++) { 
        image = new JLabel("Test"); 
        image.setText("image-icon-"+i);
        image.setBounds(0,0,200,200); 
        image.setBackground(Color.green); 
        image.setOpaque(true); 
        label.add(image); 
    }

    JPanel p = new JPanel(); 

    for (JLabel j:label) { 
        p.add(j); 
    } 
    view.add(p); 
}
}

预先感谢任何可以提供帮助的人。

最佳答案

您可以编写一个循环来迭代数组列表中的每个 JLabel,并将它们添加到 JPanel(然后添加到 JFrame)。

JPanel p = new JPanel();    
for(JLabel j:label){
    p.add(j);
}
view.add(p);

关于java - 将 JLabels 的 ArrayList 添加到 JPanel 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35460895/

相关文章:

java - isDisplayed()方法执行时间过长

java - 如何追加到实时数据库中的数组列表?

java - 是否可以将 Process stdout InputStream 读取到 NIO ByteBuffer 中?

java - 在 arraylist 中缓存 iterable 以在 reducer 中迭代两次不起作用

java - 如何打印出驻留在第二个主要方法中的 ArrayList?

c - 如何在 C 中置换(洗牌)动态/链表

java - 通过AOP拦截重载方法

java - 如何从 Java 中的 ArrayList 中删除重复的对?

java - 包含点的 Java arrayList 的最大大小

java - 在运行 JUnit 测试时测量内存消耗的方法