Problema com java, help!

Galera, preciso de ajuda com java.
Tenho que buscar informações do banco de dados e com essas informações preciso armazenar num ArrayList, e depois de armazenar as informações preciso usar um For para rodar o ArrayList e a cada loop criar uma nova tela igual a da imagem .

Mas eu não sei como fazer isso.

segue uma imagem do que eu preciso fazer:

-código

1. import javax.swing.*;
2. import java.awt.*;
3. import java.awt.event.*; 
4. import java.util.*;
5. import java.sql.Connection;
6. import java.sql.PreparedStatement;
7. import java.sql.SQLException;
8. import java.sql.ResultSet;

9. public class BuscaDados extends JFrame {
10.    private JTextArea txtA;
11.    private ArrayList<JTextArea> txtArea;
12.    private String sugestao;
13.    private int idSugestao;   
14.    
15.    public BuscaDados(ArrayList<JTextArea> txtArea){
16.       txtArea = new ArrayList<JTextArea>();   
17.    }
18.    public BuscaDados(String sugestao){
19.       this.sugestao = sugestao;
20.    }
21.    public BuscaDados(String sugestao, int idSugestao){
22.       this.sugestao = sugestao;
23.       this.idSugestao = idSugestao;
24.    }
25.    public BuscaDados(){ 
26.       super("Tela");
27.       
28.       txtA = new JTextArea(5,5);
29.       txtA.setLineWrap(true);
30.       
31.       Container tela = getContentPane();
32.       tela.setLayout(new BorderLayout());
33.       
34.       tela.add(txtA, BorderLayout.NORTH);
35.       
36.       setVisible(true);
37.       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
38.       setSize(300,300);
39.       this.setLocationRelativeTo(null);
40.    }
41.    
42.    public String getSugestao(){
43.       return sugestao;
44.    }
45.    public int getIdSugestao(){
46.       return idSugestao;
47.    }
48.    public ArrayList<JTextArea> txtArea(){
49.       return txtArea;
50.    }
51.    public void setSugestao(String sugestao){
52.       this.sugestao = sugestao;
53.    }
54.    public void setIdSugestao(int idSugestao){
55.       this.idSugestao = idSugestao;
56.    }
57.    public void setTxtArea(ArrayList<JTextArea> txtArea){
58.       this.txtArea = txtArea;
59.    }
60.    public void buscarSugestao(Connection conn){
61.       ArrayList<JTextArea> txtArea = buscarSugestoes(conn);
62.    }
63.    /*public void adicionarSugestao(){
64. 		txtArea.add(lista);  (erro)
65. 	}*/
66.    public void carregar(Connection conn) {
67.       String sqlSelect = "SELECT id, sugestao FROM tabelaTeste WHERE id_sugestao = ?";
68.       try (PreparedStatement stm = conn.prepareStatement(sqlSelect);) {
69.          stm.setInt(1, getIdSugestao());
70.          try (ResultSet rs = stm.executeQuery();) {
71.             if (rs.next()) {
72.                setIdSugestao(rs.getInt("id"));
73.                setSugestao(rs.getString("sugestao"));
74.             } 
75.          } 
76.          catch (Exception e) {
77.             e.printStackTrace();
78.          }
79.       } 
80.       catch (SQLException e1) {
81.          System.out.print(e1.getStackTrace());
82.       }
83.    }
84.   
85.    public ArrayList<JTextArea> buscarSugestoes(Connection conn){
86.       String sqlSelect = "SELECT id, sugestao FROM tabelaTeste ";
87.       ArrayList<String> lista = new ArrayList<>();
88.       
89.       try(PreparedStatement stm = conn.prepareStatement(sqlSelect);
90.          ResultSet rs = stm.executeQuery();){
91.          while(rs.next()){
92.             BuscaDados bd = new BuscaDados();
93.             bd.setIdSugestao(rs.getInt("id"));
94.             bd.setSugestao(rs.getString("sugestao"));
95.             //lista.add(bd);  (erro)
96.          }
97.       } 
98.       catch(Exception e){
99.          e.printStackTrace();
100.       }
101.       //return lista; (erro)
102.    }
103.    public static void main(String [] args){
104.       new BuscaDados();
105.    }
106. }

isso é o que eu consegui, eu não consegui fazer o for.
se puderem me ajudar explicando o que eu tenho que fazer, ficarei grato.

PS: estou postando de novo, dessa vez com o código, e tentei explicar melhor meu problema. ( caso tenha problema de postar de novo, removam sem problemas).