TextField dentro de um loop

3 respostas
S

Olá pessoal, estou um um problema aqui.
Estou pegando informações do banco de acordo com um respectivo relatório que um usuário acessa. Como são mtos relatórios, resolvi fazer apenas uma classe que gere o form de acordo com a quantidade de parâmetros que aquele relatório tem. Meu problema é como deve fazer isso? Tipo… qndo eu faço o select ai ele me traz as quantidades de parâmetros existentes, aí em um while eu devo criar a mesma quantidade de fields, entendem? Quero saber como devo preencher esses fields se eu não sei inicialmente nem quais são os parâmetros do relatório requisitado.

3 Respostas

Pedrosa

Não seria mais facil um JTable?, onde você consegue alterar esses valores.

S

Na verdade, eu vou reformular minha pergunta :slight_smile:
O que eu quero é que seja gerado labels e textfields dinâmicos, de acordo com o número de parametros do respectivo relatório clicado, entende?

RaulCarlin

Ainda assim seria melhor JTable, pois uma tela com uma resolução 800x600 não cabem mais do que (chutando) uns 20, 30 fields.

Mas se for o caso, crie um JScrollPane com GridBagLayout, antes do loop defina o número de rows que seu layout deve ter (no caso, a quantidade de parâmetros do relatório) e dê um add() a cada iteração do for, alterando a row em que o componente é adicionada.

Lembre-se que cada JTextField deve ser um novo, se for a mesma instancia ele vai mudar de posição apenas e não adicionar um novo a cada linha.

Com o ScrollPane fica mais fácil para visualizar todos os fields da tela.

Tem outro jeito mais gambiarra: se você já sabe exatamente a quantidade dos parâmetros, crie um Panel para cada um(tipo Relat01Panel, Relat02Panel) com os seus fields e labels definidos e, quando o usuário selecionar, instancie este JPanel e adicione ao seu Frame, removendo o anterior.

Criado 13 de junho de 2007
Ultima resposta 13 de jun. de 2007
Respostas 3
Participantes 3