2016-11-15 2 views
-3

Ich muss einen Bildschirm mit Informationen, die ich suchte aus der Datenbank mounten. Dazu habe ich die Informationen gesucht und in einem ArrayList gespeichert. Ich brauche eine for Schleife, um durch die ArrayList und jede Schleife zu gehen, um eine zu montieren.Ich habe eine GUI in Java, ich weiß nicht weiter

Ich habe versucht, die for Schleife durch die ArrayList zu gehen und gehen Sie den Bildschirm montieren, aber ich konnte nichts tun.

Screen-Code:

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.sql.*; 
import java.util.*; 

public class TelaSugestao extends JFrame implements ActionListener { 
    public void actionPerformed(ActionEvent e) {} 

    private JTextArea txtArea; 

    private Sugestao sugestao; 
    private Connection conn; 

    public TelaSugestao(Connection conn) { 
     super("Tela sugestao"); 

     txtArea = new JTextArea(3,3); 

     this.conn = conn; 

     Container caixa = getContentPane(); 
     caixa.setLayout(new FlowLayout()); 

     caixa.add(txtArea); 

     setSize(432,400); 
     setLocationRelativeTo(null); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setVisible(true); 
    } 

    // Trying to mount the screen every time the For runs the ArrayList. 
    public void montaTela() { 
     Sugestao sugestao = new Sugestao(); 
     ArrayList<Sugestao> listaSugestao = sugestao.carregaSugestao(conn); 
     for (int i = 0; i < listaSugestao.size(); i++) { 

     } 
    } 
} 

Ich bin auf der Suche für die Datenbankinformationen auf diese Weise:

public ArrayList<Sugestao> carregaSugestao(Connection conn) { 
    String sqlSelect = "Select id, sugestao from tabelaTeste where id_sugestao = ?"; 
    ArrayList<Sugestao> listaSugestao = new ArrayList<>(); 

    try (PreparedStatement stm = conn.prepareStatement(sqlSelect);) { 
     stm.setInt(1, getIdSugestao()); 
     try (ResultSet rs = stm.executeQuery();) { 
      while (rs.next()){ 
       Sugestao s = new Sugestao(); 
       s.setIdSugestao(rs.getInt("id_sugestao")); 
       s.setSugestao(rs.getString("sugestao")); 
       listaSugestao.add(s); 
       guardaSugestao = carregaSugestao(conn); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } catch (SQLException e1) { 
     System.out.print(e1.getStackTrace()); 
    } 
    return listaSugestao; 
} 

Könnten Sie bitte erklären, wie dies zu tun?

+0

Sie wollen ein neues Textfeld für jedes Objekt in Ihrer Arraylist? Oder möchten Sie den in Ihrer Array-Liste enthaltenen Text in das Textfeld schreiben? – XtremeBaumer

+0

Dies ist ein Textfeld für jedes Objekt meiner Arraylist enthält Google Übersetzer, sorry –

Antwort

0

diese 2 Linie von Ihrem Konstruktor entfernen: txtArea = new JTextArea(3,3); caixa.add(txtArea); Methode ändert sich nun zu:

public void montaTela(Container pane){ 
     Sugestao sugestao = new Sugestao(); 
     ArrayList<Sugestao> listaSugestao = sugestao.carregaSugestao(conn); 
     for(int i = 0; i < listaSugestao.size(); i++){ 
     txtArea=new JTextArea(); 
     //add Text to your txtArea with .append(string) 
     pane.add(txtarea); 
     } 
    } 

und rufen Sie die Methode mit: montaTela(caixa) < - erfordert im Konstruktor aufgerufen werden. sonst machen Sie einen Getter für den Inhaltsbereich

+0

Meine Datenbank enthält 5 Vorschläge, diese 5 Vorschläge, die ich in ArrayList gesucht und gespeichert habe, möchte ich jedes in einem anderen TextArea so ich versucht zu verwenden Um die ArrayList zu durchlaufen, erstellt jede Schleife einen anderen Bildschirm. Aber ich habe es versucht und ich konnte es nicht. Google Übersetzer, tut mir leid –

+0

zumindest weiß ich jetzt, was Sie tun möchten – XtremeBaumer

Verwandte Themen