Problema com JPanel

Estou tendo um problema com o JPanel…

adiciono um JTextField ao JPanel
e o JPanel a um JScrollPane

mas o panel nao ganha a barra de rolagem quando o JTextField é posicionado alem da sua altura…

pela logica como ultrapassou o tamanho do JPanel deveria ser criado o JScrollPane para poder rolar o JPanel e ver o JTextField, mas NAO acontece isso :? alguma ideia?

Você deve modificar as dimensões padrão do JPanel de tal forma que seja maior do que o espaço de visualização monitorado pelo JScrollPane.
Tente o seguinte:

JPanel p = new JPanel(); p.setPreferredSize(new Dimension((int)p.getPreferredSize().getWidth(), 1000)); // altura de 1000 pixels para o JPanel, com a largura preferencial

Será que é isso q vc tá querendo?

Vou te explicar o que acontece…

eu criei um JPanel adicionei-o ao JScrollPane certo até ai sem problemas de entender… agora seguinte…

eu conecto ao banco de dados faco a consulta ela me retornou 1, 2, 3, cada numero tem que aparecer em um JTextField tipo…

num 1 - JTextField a
num 2 - JTextField b
num 3 - JTextField c

Certo eles aparecem no panel direitinho, só que acaba o espaco no panel, o panel fica pequeno d+ para tantos JTextField’s, entao por isso adicionei o JScrollPane para que quando os TextField’s ultrapassarem o tamanho do panel ele criar uma barra de rolagem assim podendo ver os campos que o panel nao mostra… mas acontece que esse bendito JScrollPane nao aparece e os campos ficam p/ baixo… agora eu tenho que arranjar um modo de rolar o panel para enchergar os campos que ele nao mostra… alguma dica ?

(Espero que você tenha entendido o problema…)

Blz. Mesma técnica.
Você obtem a altura preferencial do JTextField que vc vai adicionar ao JPanel (incluindo espaçamentos) e incrementa a altura preferencial do JPanel como no exemplo que eu te dei acima.

Suponha que você tenha 5 JTextFields. Você calcula a altura preferencial deles assim:

double altura = textFieldN.getPreferredSize().getHeight(); altura *= 5;

dai vc substitui a altura (1000 do exemplo anterior) pela altura (não se esquecer de forçar um cast para int, se usar o método setPreferredSize(int, int) :wink: ).

Desculpe :shock: !
Não há um método setPreferredSize(int, int) e sim uma chamada como:

setPreferredSize(new Dimension(int, int));

(foi mal…)

Ok, vou tentar aqui se nao fizer o que eu quero eu posto uma nova mensagem… :smiley:

Olá prezados, sou novo por aqui e procurei um fórum mais específico para postar minha dúvida, porém não achei. Estou desenvolvendo uma calculadora utilizando o Swing, agora vem a dúvida.

Add 3 panels, no 1º add um menu, no 2º add um TextField e no 3º os botões.
Porém todos os 3 panels ficam com o mesmo tamanho e isso faz com que o Menu e o TextField fique largo.

Como resolver esse problema?

Peço desculpas por pastar em um fórum não tão específico, mas é que como sou novo por aqui não localizei.

Muito Grato 8)