Primeiramente boa tarde a todos!
Bem este é o meu primeiro tópico, por isso desculpas antecipadamente por qualquer coisa kkk
Estou fazendo um controle Moteleiro e preciso que seja gerado vários painéis com dados de uma lista retirada do banco de dados fiz o seguinte método que é passado ao construtor
public void gerarQuartos() {
GenericHibernateDAO d = new GenericHibernateDAO();
for (int count = 0; count < d.getAllQuartos().size(); count++) {
JPanel panel = new JPanel();
Label f1 = new Label(d.getAllQuartos().get(count).getNome_quarto());
panel.setSize(150, 150);
panel.setBackground(Color.LIGHT_GRAY);
panel.add(f1);
this.add(panel);
}
}
Mas como resultado tenho apenas o primeiro da minha lista! já tentei mudar os locates dentro do for e nada. alguém já tentou fazer isso?
Desde já agradeço a todos!
Não seria melhor fazer os elementos estáticos? Nunca vi um motel aumentar ou diminuir os quartos.
Segundo
GenericHibernateDAO d = new GenericHibernateDAO();
for (int count = 0; count < d.getAllQuartos().size(); count++) {
Por que não instancia uma coleção e itera sobre ela?
Terceiro, esta linha
panel.setSize(150, 150);
Pode ser a causa do problema. Como você deve saber, quando você tem dois elementos e não define a posição deles (em relação aos eixos X e Y), eles ficam sobrepostos.
Essa do motel aumentar quantos foi algo que não havia pensado kkkkk as vezes agente pensa no dinamismo extremo e esquece da estrutura do usuário.
já havia tentando colocar os eixos x e y porem só carrega apenas um jPanel.
Então, eu iria direto para uma estrutura definitiva. Claro, podemos ter a situação do cliente ter mais de um motel e cada qual ter uma quantidade diferente de quartos. Mas, mesmo assim, acredito que valeria a pena.
Vou fazer isso! mas estou curioso quanto a resolução do problema kkkk
Se não me engano existe um WrapLayoutManager que você pode setar no seu JFrame (ou JPanel) principal que ele irá posicionar os filhos lado a lado até o limite e então começar na linha de baixo.