Olá pessoal, sou iniciante no java e fiz um JPanel pnl1 com as seguintes características: cor de fundo branca e borda perta, porém eu queria que este JPanel (pnl1) fosse adicionado em um outro JPanel (pnlTela) cem vezes e com nomes diferentes, exemplo:
//Construindo o pnlTela
this.pnlTela = new JPanel();
this.pnlTela.setLayout(new GridLayout(20,5);
//Construindo o pnl1
this.pnl1 = new JPanel();
//Inserindo o pnl1
this.pnlTela.add(pnl1);
Desta maneira eu adiciono apenas o pnl1 no pnlTela, mas como eu queria adicionar 100 JPanel no pnlTela e teria que criar mais 100 JPanel com nomes diferentes (pnl2, pnl3, pnl4…) e isto além de dar muito trabalho eu acho que não é considerado como boas maneiras de programação.
Espero que está seja um dúvida bem simples e que alguém por favor possa me ajuda. Já procurei aqui no GUJ e em outros foruns, porém não conseguir resolver este problema.
Eu tentei criar um vetor JPanel com 100 posições mas não deu certo porque assim ele cria apenas um JPanel vetor de 100 posições e não 100 JPanel.
//Construindo o pnlTela
this.pnlTela = new JPanel();
this.pnlTela.setLayout(new GridLayout(20,5);
//Inserindo o pnl1
for(int i =0; i < 100; i++) {
this.pnlTela.add(new JPanel());
}
PS. a tag certa para códigos é CODE entre “[” e “]” e não “<” e “>”
Não sei muito bem qual a sua intenção em criar 100 JPanel, eu consegui fazer utilizando matriz.
JPanel[][] panels = new JPanel[20][5];
private void constroiJPanels() {
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 5; j++) {
panels[i][j] = new PanelTela(); //PanelTela é o seu JPanel criado
}
}
}
private void adicionaJPanels() {
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 5; j++) {
pnlTela.add(panels[i][j]);
}
}
}
Uma questão muito maior que me bate agora é saber por que voce quer adicionar 100 JPanels na sua tela? Isso me cheira a gambiarra, mas posso estar errado.
Conheguir fazer (com o exemplo de vcs) com vetor e tbm com matriz…
…Marky.Vasconcelos vc tem razão, eu tbm estou achando isto uma gambiarra. O que eu estou fazendo é o meu TCC pro curso técnico, estou fazendo um software que auxilie alunos de cursos de programação aprenderem a desenvolver fluxograma, a minha ideia com os 100 JPanel é : criar uma tela com estes JPanel e em cima de cada JPanel colocar um JLabel e em cima destes colocar 100 JTextField, assim qndo o aluno escolher em um JComboBox um dos JPanel e clicar em um dos botões referentes a uma simbologia de fluxograma eu chamo um switch que carrega na JLabel a ImageIcon do fluxograma, em seguinda o aluno digita no JTextField a lógica do fluxograma (que vem com um enunciado do banco de dados) e por ultimo o software busca no banco de dados a logica cadastrada e ver se é igual a dos JtextField…
só que a maneira de eu saber onde está cada ImageIcon e texto do JTextField é está… sei que isto não é o mais adquado e nem a maneira correta de se saber… :oops: