JPanel com Barra de Rolagem

Olá!

Eu estou com um pequeno problema. Estou desenvolvendo um sistema e existe nele, um questionário realmente extenso. Esse questionário foi criado em JPanel. Agora eu preciso de uma barra de rolagem para esse JPanel. Já coloquei autoscrolls(true) e não deu certo, metade do questionário não aparece na tela. Coloquei-o em um ScrollPane e tb não deu certo. Algúem sabe o que devo fazer?

Você deve colocar o seu JPanel dentro do ScrollPane, não o contrário.

Tipicamente a criação ficaria mais ou menos assim:

jScrollPane = new JScrollPane(); jScrollPane.setViewportView(seuPainelExtenso); seuForm.setContentPane(jScrollPane);

ViniGodoy, Eu fiz o que você disse, mas não deu certo. A barra de rolagem não funciona.

Lembrando que eu tenho um JPanel grande demais e não posso diminuí-lo e preciso de uma barra de rolagem nele mesmo.

Se o seu questionário é realmente extenso ( e provavelmente deve ter dados de varias tabelas ), talvez fosse legal usar um JTabbedPanel… um painel com aquelas “orelinhas”, onde vc pode dividir suponhamos:

  • Dados Pessoais
  • Endereço ( 1 ou mais endereços )
  • Outras Informações

sei lá :stuck_out_tongue:

fazer tudo num ‘panel’ so talvez ficasse bom, se fosse na Web… ai o browser ja cuidava de por o scroll pro seu Form, caso ele ultrapassasse o limite vertical da tela =D

Muito obrigado pela sugestão, mas não serve. Eu já utilizo um JTabbedPane no meu software, além de vários painéis de layout CardLayout. As informações já foram atomicamente divididas. Não dá pra separar mais. O questionário que eu preciso colocar é uma anamnese. São cerca de 20 perguntas interrelacionadas com reposta Sim/Não. Separá-las ficaria confuso para um usuário leigo. A única solução que eu vejo é realmente a barra de rolagem. Mas mesmo assim, agradeço a sua atenção.

O que eu quero, eu imagino que não possa ser tão difícil, uma vez que todo o programa, quando você diminui o tamanho, ele gera uma barra de rolagem automaticamente. O meu software, quando o diminiuo, as informações do panel são “deglutidas”, e eu só consigo visualizá-las aumentando a janela.

Você disse que fez como eu disse e a barra de rolagem não funcionou… Isso é muito estranho. Seu painel deveria ter ficado com a rolagem assim que foi colocado sobre um ScrollPane.

Você pode acaso está sobrescrevendo métodos como getPreferredSize()? O ideal é que você não faça isso.

Tem como colocar o código em anexo para a gente dar uma olhada?

Olá,

Estou com o mesmo problema.
Segui o que o ViniGodoy disse, mas também a barra de rolagem aqui não funciona, mesmo o meu JPanel estando sobre um JScrollPane.

Alguém?

Ajuste o tamanho preferencial do JPanel e as barras de rolagem aparecerão: