Frame Principal

Bom dia a todos, eu tenho um frame onde dentro desse frame tem um JTable, eu gostaria de chamar esse JTable em uma “frame separado” como se fosse filho do frame onde ele se encontra, ou seja quando solicitado esse JTable ele abrir em uma janela dentro desse frame…tem como fazer?

O que vc quer é usar o JInternalFrame acredito.

tens 2 opções:

1)use sempre JDesktopPane como ContentPane de seu Frame principal
coloque o JTable em um JInternalFrame
e maximize esse JInternalFrame no DesktopPane.
restaurando o mesmo quando necessario.

  1. adicione a sua tabela diretamente no seu frame principal
    quando chegar o momento de fazer o “desgrudamento” dele.
    coloque um JDesktopPane no lugar da tabela, crie um JInternalFrame
    adicione a tabela no JInternalFrame criado, adicione o JInternalFrame no JDesktopPane que
    ja esta na janela.

complicadinho de explicar…mais té que não é dificil não de fazer.

Nussa cara kkk, tem um JPanel no meu JFrame, eu queria uma segunda tela pra aparecer a JTable porém esse segundo frame que conterá a minha JTable quando aberto por exemplo nao abrir uma outra janela por exemplo na barra de tarefas, mas sim ficar na mesma janela do Frame principal.

É exatamente como fazer isso que o Dyorgio explicou. :roll:

Bom eu te diriam pra criar uma JDialog, que abriria um dialog separado do seu frame principal
mas como vc quer na mesma tela vc pode usar abas não serve?
se sim da uma pesquisada em JTabbedPane, pq ai da pra vc deixar algumas informações em uma aba e na outra a
sua tabela.

mas e agora que eu tenho um JPanel no Frame deleto e crio um JDesktopFrame? Qual a diferença entre os dois tem como me explicar?

não precisa criar um novo painel, e nem deletar nada:

public class QualquerCoisa extends JFrame{
 JDesktopPane desktop = new JDesktopPane();
JTable table = new JTable();
public QualquerCoisa(){
super("QualquerCoisa que vc use");
setContentPane().add(table);
}

// troca as posições
public void switchComponents(){
 if (getContentPane().getComponent(0) == table){
getContentPane().add(desktop);
JInternalFrame frameTmp = new JInternalFrame();
frameTmp.add(table);
desktop.add(frameTmp);
}else{
desktop.removeAll();
getContentPane().add(table);
}
}

O codigo acima é ilustratico, nnao usei o eclipse…mais acho que deu de entender toda a ideia.

Vini a ideia é essa mesmo de abrir um dialog por exemplo no meio do frame principal, entende, mas esse frame principal continue aberto atraz…

nossa cara, qual a dificuldade? :S


JDialog dialogTmp = new JDialog(tuaFramePrincipal,"titulo");
// nesse momento o swing remove a tabela do frame principal, pois um componente soh pode
// estar contigo em apenas 1 componente ao mesmo tempo.
dialogTmp.add(suaTabela);

dialog.setSize(300,300);
dialog.setModal(true);
dialog.setLocationRelativeTo(tuaFramePrincipal);
// aqui o programa ira parar e esperar o dialogo ser fechado, pois configurei como modal o dialogo
dialog.setVisible(true);

// aqui eu devolvo a tabela a janela, caso seja isso que vc quer
tuaFramePrincipal.add(suaTabela);

agora foi de bandeja né?
fala sério :slight_smile:

como faço pra chamar o JDialog so dar um new meuJDialog() ?

?!!?!?

cara…como tu tens 600 mensagens no GUJ se tu nem sabe dar new no JDialog?

a proposito, o codigo do meu post anterior contem erros…
pois não usei o eclipse…aonde ta dialogTmp mude para dialog apenas

cara eu nunca mechi com Swing por isso to com dificuldades agora se vc, nao quiser ajudar cara sai fora ok? Se for pra ficar falando bosta igual vc ta nao precisa responder nao blz? Isso aqui nao e um Forum nao e pra tirar duvidas? Infelizmente tem gente aqui igual a vc…

Agora pra quem puder me ajudar, vou falar o que nao estou conseguindo:

Ta funcinando meu JTable no JDialog ja ta funcionando meus comboBox, nao to conseguindo abrir meu Frame maximizado, ja usei a constante:

this.setExtendedState(Frame.MAXIMIZED_BOTH);

Mas nao ta dando =/

instanciar um objeto é o minimo que um programador Java precisa saber…
Perguntei de curioso, estranho uma pessoa com 668 mensagens num forum de Java
não saber dar new…

das duas uma, ou vc encomoda demais todos do forum.
ou vc encomoda demais todos do forum.

Minha pergunta foi simples e direta, pois dependendo de sua resposta
eu teria que te tratar de uma maneira diferente…sabe como é né? ensinar o basico é chato.

Agora fica sem ajuda, eu sabia essa sua resposta, mais do que adianta? eu respondo
e tu abre um novo topico
e assim tu vai levando a vida…fazendo os outros trabalharem pra vc…ai,ai.

Repito, como pode alguem com 668 mensagens não saber dar new?

tem algum fio solto ai…Jesusssss abençoaaa

pois é nao vai ver que nao sei mesmo dar new…nunca trabalhei com Java nunca fiz faculdade, agora vc deve ter um milhao de anos que trabalha né pra saber tanto… cada coisa…

o ponto aqui evertonsilvagomesjava é não se irritar por pouco…
ajudamos se sabemos, mais se o topico vira uma aula Java…ai complica.
cada topico , uma duvida. :wink:

Sem problemas cara, ja aprendi muito aqui no Guj, nao vai ser por isso que vou deixar de criar topicos aqui quando precisar…