ATUALIZADO - Novo problema / Barra de Rolagem

10 respostas
S

Dae Galera, pra não fazer novo Topico só mudei aqui o codigo era de outro erro “Montar Tabela SQL”.

Agora to com um problema de fazer a barra de rolagem, li os outros topicos mais não consigui fazer se adptar ao meu codigo.
Que ao puxar a tabela do SQL, está trazendo tudo, conforme eu queria. Mais é muitos registros e não mostra tudo no JTextArea, corta onde tem o limite do corte do quadrado.
Se alguem me der dica no codigo como coloca a barra de rolagem!
Se alguem ai poder me dar uma luz nessa pirosca!

Codigo da tela de “Apresentar Tabela”

package br.com.caelum.jdbc.principal.contato;

import java.util.List;
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import br.com.caelum.jdbc.dao.ContatoDao;
import br.com.caelum.jdbc.modelo.ContatoVo;

public class ApresentaTabela extends JPanel {
    private JButton jcomp1;
    private JButton jcomp2;
    private JTextArea jcomp3;    

    public ApresentaTabela () {    
        jcomp1 = new JButton ("Listar");
        jcomp2 = new JButton ("Limpar");
        jcomp3 = new JTextArea (5, 5);
      
        jcomp3.setEnabled (false);       
     
        setPreferredSize (new Dimension (667, 371));
        setLayout (null);

        add (jcomp1);
        add (jcomp2);
        add (jcomp3);         

        jcomp1.setBounds (550, 345, 100, 20);
        jcomp2.setBounds (5, 340, 140, 20);
        jcomp3.setBounds (15, 15, 635, 305);      
        
        jcomp1.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {      	
            	ContatoDao dao = new ContatoDao();
        		
        		List<ContatoVo> teste1 = dao.listar();{
        		//Aqui lista todos os registros da tabela SQL 
        			      jcomp3.setText( jcomp3.getText() +  " Nome: " + vo.getTeste()+    
                                          "\n"+"Email: " + vo.getInicio()+    
                                          "\n"+"Nome: " + vo.getNome()+    
                                          "\n"+"CPF: " + vo.getCpf()+    
                                          "\n"+"tt: " + vo.getTt()+"\n\n");  			
        		}
            }
        });
        
        jcomp2.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {   
            	jcomp3.setText(null);            	        	           	
            }
      }); 
    }


    public static void montarTela (String[] args) {
        //Aqui está o problema meu, não consigui fazer a adptação para colocar a barra de rolagem, não sei também se é o lugar certo aqui.
        JFrame frame = new JFrame ("Tabelas");
        frame.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
        frame.getContentPane().add (new ApresentaTabela());
        frame.pack();
        frame.setVisible (true);
    }
}

Quem poder dar uma mão pra mim!

10 Respostas

drsmachado

Já tentou concatenar o resultado em uma String e depois chamar o método jComp3.setText(stringDeValores); ?

Z

Acredito que o que o drsmachado falou resolve,

Pq eu acho que cada vez que passa o jComp3.setText, ele está atualizando com o valor novo e não concatenando, acho que, apenas como teste, para visualizar vc poderia fazer assim:

jcomp3.setText( jcomp3.getText +  " Nome: " + vo.getTeste()+  
                            "\n"+"Email: " + vo.getInicio()+  
                            "\n"+"Nome: " + vo.getNome()+  
                            "\n"+"CPF: " + vo.getCpf()+  
                            "\n"+"tt: " + vo.getTt()+"\n\n");

Mas bem melhor fazer o que o mchado falou, concatena antes e depois só seta, bem mais clean.

abss

S

drsmachado

Tipo fiz o que você falo, só que chamo apenas o 1 valor da tabela sql. (Valeu)

Zabimaru

Cara deu certo, nossa nem tinha pensando nisso! (Valeu).

Obrigado galera!

S

Galera atualizei o erro que estava dando, agora estou mancando com esse problema “chato”, não estou consiguindo fazer as adptações necessarias para rodar a barra de rolagem. conforme descrito no codigo inicial a cima /.

Obrigado a todos que derem uma força!

drsmachado

A classe JTextArea possui o método setAutoScrolls(boolean); que provavelmente te ajudarão aí.

jcomp3.setAutoScrolls(true);
S

Cara, não entendi, quer dizer que a classe JTextArea ja tem o Scrolls?

Ou tem que criar o metodo?
Não consigui fazer rodar seguindo o que eu entendi! :s

drsmachado

Já possui implementado.
O teu objeto jcomp3 já herda essas barras.
Basta ativá-los com o método que te informei.
Coloque-o depois do momento em que você o instancia.

S

Cara não deu certo se coloquei o codigo que você me passo

Só não saquei onde você diz que ele instancia, pelo que entendi é no public TestaListagem() , depois que ele é adicionado na tela.

Mais não deu certo.

drsmachado

Aqui

jcomp3.setBounds (15, 15, 635, 305);       
        jcomp3.setAutoScrolls(true);
S

Parceiro, não deu certo, tinha colocado ali mesmo.

Quando clico no botão “Listar”, onde chama todo conteudo do SQL, traz todo conteudo, onde acaba o limite do JTextArea não da pra vizualizar o resto.

Criado 6 de maio de 2011
Ultima resposta 6 de mai. de 2011
Respostas 10
Participantes 3