boa noite galera…
estou tendo problema com as JFrame…
tenho a tela do menu principal… so que a cada janela q vou abrindo do sistema vai aumentando na barra de tarefa so windows, eu queria saber se tem uma forma sem ser utilizar jInternalFrame, tipo um jeito de nao mostrar na barra de tarefa a cada janela q for abrindo do sistema???
No NetBeans tem um componente de dialog mas não sei seus comandos e sintaxes não! se alguem puder ajudar eu também agradeceria.
Obrigado!
ViniGodoy
Com JFrames, não tem jeito. Mas esse é o comportamento normal das aplicações Windows.
Quando você abre duas instâncias do Word ou do Powerpoint, você vê dois ícones na barra de tarefas.
Se você quiser um ícone só, deve usar abas (como o Firefox), um componente chamado JTabbedPane. Outra possibilidade é usar o JInternalFrame, mas é um componente antiquado.
Você pode notar que as aplicações Microsoft já abandonaram o conceito de MDI há pelo menos 5 anos. No lugar, você poderia abrir JDialogs, embora esse não seja exatamente o papel delas.
Geralmente, é uma má idéia fugir dos padrões dos sistemas operacionais.
D
DaitonJr
ViniGodoy esse é um projetinho pra TCC da faculdade,
me de uma opniao sua… estou fzd um sistema basico para uma loja, de venda de produtos e tals…
na sua opniao deixo como esta abrindo as janelas normalmente na barra de tarefas ou tento mudar para jinternalframe??
ViniGodoy
Ou deixa assim mesmo. Por que você está se incomodando com isso? Seu professor pediu explicitamente para não ser assim?
D
DaitonJr
nao pediu nao… eu estava preocupado… pq os outros sistemas nao sao assim… fiquei meio encomodado
D
DaitonJr
mas so uma outra pergunta… eu tenho um menu principal, e quando abro a tela de cadastro de cliente eu nao quero q o menu principal fique ativo para clicar e tals… so q minha aplicaçao esta toda em jFrame…
tem como eu quado abrir o cadastro de cliente eu nao poder clicar na janela anterior?
ViniGodoy
Aí só com JDialog mesmo. Troque de JFrame para JDialog e deixe sua JDialog normal.
Normalmente é bem fácil mudar de um para outro, o código dos dois é praticamente idêntico.
ViniGodoy
Desculpe, eu quis dizer “e deixe sua JDialog modal”.
Isso vai resolver não só o problema de não poder voltar a janela inicial, como também o da barra de tarefas.
thiagodelgado
Não dá pra “travar” o JFrame anterior? por exemplo, quando mudar de um JFrame pro outro, desabilitar os componentes do JFrame do menu, ou algo assim
ViniGodoy
Dá sim, mas isso é xunxo. Não impedirá o usuário de ir até o JFrame e vê-lo “congelado”.
Eu usaria isso apenas como último recurso.
esdras_63
Bom dia ViniGodoy. Pode será me explicar como que trava o outro frame? porque em um sistema que eu tava fazendo precisava exatamente disso e não consegui até que larguei mão huahsuah. Obrigado.
ViniGodoy
Você usa para isso um JDialog. O JDialog é uma janela que suporta o conceito de “modal” ou seja, não deixar que você acesse outras janelas até que ela seja fechada. O JDialog só dará acesso a janelas que o próprio JDialog abrir.
Tem um exemplo aqui:
Uma das grandes vantagens do JDialog é que o método setVisible() de uma dialog modal só retorna quando a janela fecha. Assim, fica bem fácil criar Dialogs para perguntar informações ao usuário, e ler quais informações foram lidas ao final. O exemplo do link acima mostra também essa situação.
Para tornar uma dialog modal, basta chamar o método setModel e passar como parâmetro o valor true.
suaDialog.setModal(true);
esdras_63
[quote=ViniGodoy]Você usa para isso um JDialog. O JDialog é uma janela que suporta o conceito de “modal” ou seja, não deixar que você acesse outras janelas até que ela seja fechada. O JDialog só dará acesso a janelas que o próprio JDialog abrir.
Tem um exemplo aqui:
Uma das grandes vantagens do JDialog é que o método setVisible() de uma dialog modal só retorna quando a janela fecha. Assim, fica bem fácil criar Dialogs para perguntar informações ao usuário, e ler quais informações foram lidas ao final. O exemplo do link acima mostra também essa situação.
Para tornar uma dialog modal, basta chamar o método setModel e passar como parâmetro o valor true.
suaDialog.setModal(true);
A sim! agora intendi. Depois vou tentar restaurar meu projeto. Eu tava tentando fazer uma espécie de pagina de login só que tava dando muita dor de cabeça pois eu estava usando JFrame então eu precisava desativar o frame principal e estava usando setVisible mas deu um punhado de problemas. Obrigado Vini.
D
DaitonJr
eu consigo chamar um Jframe passando um valor pra ele??
preciso passar uma variavel por exemplo “1” ou “0”,
se for 1 eu habilito tal coisa no jframe e se for 0 habilito outra coisa???
esdras_63
DaitonJr:
eu consigo chamar um Jframe passando um valor pra ele??
preciso passar uma variavel por exemplo “1” ou “0”,
se for 1 eu habilito tal coisa no jframe e se for 0 habilito outra coisa???
Eu ja precisei fazer isso uma vez antes de usa o dialog que agora funcionou. Mas eu fis diferente! eu criei uma classe com uma variavel do tipo static assim vc pode instanciar quantas vezes quiser que ela tera o mesmo valor estabelecido. Dai no seu frame vc faz a verificação. Acho que é isso que você quer saber né? Qualquer coisa me manda um email em [email removido] ou responde aqui mesmo.
thiagodelgado
é, travar o JFrame é, digamos, um recurso técnico ou POG rs o correto mesmo seria usar algo modal