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.
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);