pessoal, meu problema é que tenho um jtable num jscrollpane, e quando faco uma consulta pra exibir na tabela até uns 50 registro tudo ocorre bem e todos sao exibidos, mas quando a consulta gera uns 200 registros a barra de rolagem nao vai ate o fim da listagem, parece que pega no maximo 50 registros.
Alguem sabe por que isso acontecce?
ja verifiquei e a barra de rolagem ta marcada pra aumentar AS_NEEDED.
Isso quem faz não é o tamanho da barra de rolagem, mas sim a posiçào da mesma…
Dá uma pesquisada no javadoc sobre JTable e o JScrollPane
R
rpspereira
cara, nao entendi o que vc quis dizer, dei uma olhada no que sugeriu sobre o scrollpane, mas ainda nao entendo porque nao exibe todas os meus registros…
Alguma sugestao???
dudaskank
Você tem certeza que a consulta está gerando todos estes resultados? Porque eu fiz um teste aqui e minha tabela exibe 2500 linhas... olha só:
e depois vem o metodo que faz o select no banco e monta um vetor com os resultados:
publicVectorconsultaUsuario(Stringqueryparametro)throwsIOException,SQLException{Connectioncon=null;java.util.Vectorrecebe_consulta=newVector();// cria vectortry//A captura de exceções SQLException em Java é obrigatória para usarmos JDBC. {//Este é um dos meios para registrar um driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");con=DriverManager.getConnection("jdbc:odbc:cefa","","");PreparedStatementstmt=con.prepareStatement(queryparametro);ResultSetresult=stmt.executeQuery();while(result.next()){Usuarioconsultaparam=newUsuario();//cria um objeto do tipo UsuarioIntegercod_manual=result.getInt(1);consultaparam.setCodManual(cod_manual);Stringnome_usuario=result.getString(2);consultaparam.setNomeUsuario(nome_usuario);Stringendereco_usuario=result.getString(3);consultaparam.setEnderecoUsuario(endereco_usuario);Integernumero_usuario=result.getInt(4);consultaparam.setEnderecoNumeroUsuario(numero_usuario);/* String complemento_usuario=result.getString(6); consultaparam.setEnderecoComplementoUsuario(complemento_usuario); String bairro_usuario=result.getString(7); consultaparam.setBairroUsuario(bairro_usuario); */Stringcidade_usuario=result.getString(5);consultaparam.setCidadeUsuario(cidade_usuario);Stringtelefone_residencial=result.getString(6);consultaparam.setTelResidencialUsuario(telefone_residencial);/* String telefone_comercial=result.getString(10); consultaparam.setTelComercialUsuario(telefone_comercial); */Stringcelular_usuario=result.getString(7);consultaparam.setCelularUsuario(celular_usuario);/* String data_cadastro=result.getString(12); consultaparam.setDataCadastroUsuario(data_cadastro); String profissao_usuario=result.getString(13); consultaparam.setProfissaoUsuario(profissao_usuario); String cep_usuario=result.getString(14); consultaparam.setCepUsuario(cep_usuario); *///adicionando valores do resultset dentro do vectorrecebe_consulta.add(consultaparam);//System.out.println("o conteudo da vetor de consulta é: "+recebe_consulta);}returnrecebe_consulta;}// Registrado o driver, vamos estabelecer uma conexão catch(Exceptione){// se houve algum erro, uma exceção é gerada para informar o erro e.printStackTrace();//vejamos que erro foi gerado e quem o gerou}finally{try{con.close();}catch(ExceptiononConnClose){System.out.println("Houve erro no fechamento de conexão");onConnClose.printStackTrace();}}returnnull;}
Nao sei onde poderia estar acontecendo a limitacao de linhas. Voce pode me ajudar?
T+
dudaskank
Esta limitação pode estar sendo passada ao banco por aqui: queryparametro
O que está sendo passado como esse valor, não tem por acaso um LIMIT 50 no final? No postgres eu sei que existe este tipo de instrução… em outros bancos não sei exatamente a sintaxe
R
rpspereira
cara, descobri o problema. Como programo no eclipse, tem aquele componente jTable on JscrollPane. Ai como nao descobri o defeito deletei ele e coloquei na mao um jscrollpane no jframe e depois uma jTable dentro dele, ai tudo funcionou perfeitamente…