[Dúvida]Adicionando JTable em um Container

6 respostas
Strokes

Buenas, sou iniciante em Java e estou a dar meus primeiros passos.
Porém, recentemente me deparei com a seguinte situação:
Criei um JTable e tentei adiciona-la em meu Container de um JInternalFrame. Até aí tudo bem, o problema ocorreu quando adicionei a linha c.add(new JScrollPane(meuJTable)); para aparecer o cabeçalho da tabela. O objeto simplesmente sumiu, não aparece! Alguém poderia me explicar como proceder em tal situação? Eu só havia trabalhado com o JTable em um JTabbedPane com JPanel.

Grato desde já pelo espaço concebido.

[]'s

PS: Estou utilizando Eclipse

6 Respostas

ViniGodoy

Não há qualquer diferença em trabalhar com JInternalFrame, JFrame ou JDialog. Verifique se o Layout Manager que está sendo usado no seu container é o correto, e se não faltam parâmetros no método add.

Strokes

Olá ViniGodoy, obrigado por responder. Mas há uma diferença se posto o contexto que lhe falei: um JTabbedPane utiliza JPane em cada aba. Tu não irá adicionar o JTable diretamente em um Container, e sim no JPanel. Que por sinal, desta forma funciona perfeitamente.
Meu Container está 100%.
De qualquer forma, reitero minha pergunta: Alguém poderia me explicar como proceder em tal situação?

Marky.Vasconcelos

JPanel é um Container também.

Mas tente assim.

JScrollPane pane = new JScrollPane();
pane.setViewportView(table);
frame.add(pane);
Strokes

Olá Mark_Ameba, não obtive sucesso desta forma. O JTable continua a não aparecer na tela.
Obrigado por responder.

Strokes

Achei uma solução temporária, provavelmente não é a coisa certa a se fazer, mas funcionou.
Adicionei todos objetos no JInternalFrame sem utilizar o Container, aí então seguí a dica do Mark_Ameba.

[]'s

ViniGodoy

Strokes:
Olá ViniGodoy, obrigado por responder. Mas há uma diferença se posto o contexto que lhe falei: um JTabbedPane utiliza JPane em cada aba. Tu não irá adicionar o JTable diretamente em um Container, e sim no JPanel. Que por sinal, desta forma funciona perfeitamente.
Meu Container está 100%.
De qualquer forma, reitero minha pergunta: Alguém poderia me explicar como proceder em tal situação?

E eu reitero minha resposta.
Procure verificar qual é o layout manager do seu JPanel, que também é um container. Também verifique se, para o layout manager em questão, o seu comando add está passando todos os parâmetros corretos.

Tente fazer:

c.setLayout(new BorderLayout()); JScrollPane pane = new JScrollPane(); pane.setViewportView(table); frame.add(pane, BorderLayout.CENTER);

Criado 7 de julho de 2009
Ultima resposta 8 de jul. de 2009
Respostas 6
Participantes 3