Imprimir consulta na tela

Olá, amigos. Mais uma vez estou precisando da valiosa ajuda de todos. Estou quase terminando meu projeto e agora preciso demonstrar uma consulta através de um textField ou um campo grande ou até mesmo chamar o console me trazendo meus cadastros no banco de dados. Não sei bem como fazer. O método consulta eu já tenho, só não sei onde exibir o que vier de resposta desse método. Alguém de boa vontade poderia me ajudar? Obrigado.
Vejam o método:

[code]public void consultar() throws FileNotFoundException {
try {
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
cn = DriverManager.getConnection(Conexao.CONEXAO);
st = cn.createStatement();
String query = “SELECT * FROM ALUNO;”;
rs = st.executeQuery(query);

        while(rs.next()) {
			System.out.println(
			rs.getString(1) + " | " +
			rs.getString(6) + " | " +
			rs.getString(8)
			);				
		}
       cn.close();
        
 	System.out.println("\n\n");

    } catch (Exception e) {
    }
}	

}[/code]

olha vo te da uma ideia, pq vc nao usa o while pra coloca todos os resultados do select em um array ou um arraylist, e depois com um for vc coloca eles em uma jtable ou um jtextarea, ou aonde quiser

Gostei da idéia, mas teria como explicar um pouco melhor?

Ou então, como faço para chamar a tela do console, quando executo o programa através do .jar? Digo isso, porque, na tela do console, eu consigo imprimir meus cadastros do banco. Teria como chamar a tela do prompt?

mais ou menos assim…

[code]public void consultar() throws FileNotFoundException {
ArrayList resultado = new ArrayList();

 try {
 	    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        cn = DriverManager.getConnection(Conexao.CONEXAO);
        st = cn.createStatement();

        String query = "SELECT * FROM ALUNO;";
        rs = st.executeQuery(query);

        while(rs.next()) {
		        resultado.add( //colocando tudo que encontrar na arraylist
		        rs.getString(1) + " | " +
			rs.getString(6) + " | " +
			rs.getString(8)
                            );								
		}

         for(int i; i<resultado.size(); i++) { //esse for pode ser aonde voce quiser, dependendo da onde for instanciada a arraylist voce pode usar ela onde achar melhor
         
         //aki vc vai colokando na jtextfield ou jtextarea com o metodo suaarraylist.get(i);
         //mais nao esqueca de converter para string com o metodo .toString();, pois os elementos da arraylist sao objetos

         }

       cn.close();           

    } catch (Exception e) {
    }
}	

}[/code]>

cara ai eu ja nao sei, eu nao mecho com console, trabalho mais com swing no netbeans. :slight_smile:

mais eu acho q se for pra console vc pode usar System.out.println dentro do for pra ir jogando na tela entao…

Então, eu entendi sua idéia, mas na verdade, o que eu sei de arraylist é tão pouco. Meu conhecimento de manipulação de arrays (ou coleção de ints) é muito básico. Nem sei fazer tudo isso que você falou. Teria uma solução mais simples?

entao mais simples so se voce jogasse na tela direto, como voce fez no primeiro codigo que voce posto, fora isso nao ssei uma maneira mais simples hehe

Beleza, vou tentar fazer desse modo e depois posto o resultado. Obrigado.

Cara tu podia criar um JTextArea, exemplo:

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class FrameHistorico extends JFrame{

	PanelHistorico ph;
	
	public FrameHistorico(Object cf){
		setTitle("Histórico");
		this.add(ph = new PanelHistorico(this, cf));
		this.setLocationRelativeTo(null);
		this.add(ph);
		this.setLayout(null);
		this.setContentPane(ph);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		this.setResizable(false);
		this.pack();
	}
	
	public void fechaJanela(){
		this.setVisible(false);
		this.dispose();
	}
	
	public class PanelHistorico extends JPanel implements ActionListener{
		
		JFrame frame;
		Object c;
		JTextArea ta;
		JButton voltar;
		JScrollPane scrollPane;
		Vector <String> historico = new Vector <String> (1,1);
		
		public PanelHistorico(JFrame f, Object cof){
			c = cof;
			frame = f;
			
			 ta = new JTextArea(7,30);
			 ta.setEditable(false);
			 
			 this.preencheArea();
			 
			 voltar = new JButton("Voltar");
			 voltar.addActionListener(this);
			 
			 scrollPane = new JScrollPane(ta);
			 

	        JPanel buttonPanel = new JPanel();
	        JPanel buttonPanel2 = new JPanel();
	        
	        buttonPanel.setLayout(new GridLayout());
	        buttonPanel2.setLayout(new GridLayout(5,5));
	        
	        
	        buttonPanel.add(scrollPane);
	        buttonPanel2.add(voltar);

	        
	        add(buttonPanel, BorderLayout.PAGE_START);
	        
	        add(buttonPanel2, BorderLayout.CENTER);
		}

		public void preencheArea(){
			historico = c.getHistorico();
			for(int i = 0; i < historico.size(); i++){
				ta.append(historico.get(i)+"\n");
			}
		}
		
		public void actionPerformed(ActionEvent e) {
			
			if(e.getSource() == voltar){
				FramePrincipal fp = new FramePrincipal(c);
				this.setVisible(false);
				this.fecha();
			}
			
		}
		
		public void fecha(){
			frame.dispose();
		}
			
		}

	}

Qual seria o frame principal? Está apresentando erro na linha 85.

FramePrincipal era para onde o programa voltava quando clicado em voltar.