JDialog abrir JDialog

Ola pessoal!

Sou novato aki, e, estou precisando de uma forcinha de vc’s.

Pretendo desenvolver um sistema onde um JDialog abra outro JDialog, pelo fato de uma JDialog (pode ser uma consulta ou um cadastro) só dar acesso ao JFrame(tela principal) após ser fechada. Já tem quatro dias que eu estou procurando na net em vários fórum’s, e, ainda não consegui nada, se for possivel postarem um modelo (pode ser bem simples) mostrando como posso fazer isso, e, se não for pedir muito, comentado, ficarei grato.

Pelo que andei lendo este é um problema que mtos iniciantes têm, acredito que vcs poderão ajudar muito mais pessoas além de mim.

Desde já muito obrigado a todos que puderem me ajudar.

No próprio construtor do JDialog tu passa o objeto Window que será o owner dele, podendo passar um JDialog ou JFrame (ambos herdam de Window).
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JDialog.html#JDialog(java.awt.Dialog)

Exemplos de JDialogs em
http://www.java2s.com/Code/Java/Swing-JFC/Dialog.htm
talvez tu encontre algo lá.

Valeu Dionat4n.

Vou dar mais uma estudada, qualquer coisa posto aki denovo, e, eu esqueci de dizer antes que estou usando o NetBeans 6.1.

Mas mto obrigado pela atenção.

Opa, blz

Com tua ajuda dionat4n, consegui em parte o que eu preciso. Mto obrigado :smiley:

[code]public class dialogo2 extends javax.swing.JDialog {

public dialogo2(dialogo1 owner, boolean modal) {
    super(owner, modal);


[/code]
Agora surgiu outro obstaculo.

Eu criei um exemplo para testes com 04 janelas 1 principal e 3 JDialog’s. Eu consigo acessa-las em sequência.

Minha pergunta é:
É possivel eu chamar por exemplo o dialogo3 de outra parte que não seja o dialogo2 (podendo chama-lo de onde eu quiser do principal ou do dialogo1).
Ou será necessário eu criar tantos JDialog’s quanto for necessário mudando o owner?

Me desculpem se minhas perguntas forem muito infantis, eu estou apenas começando na programação. Se for necessário abrir outro tópico me avisem por favor.

Desde já mto obrigado.

[quote=magno_lr]Opa, blz

Com tua ajuda dionat4n, consegui em parte o que eu preciso. Mto obrigado :smiley:

[code]public class dialogo2 extends javax.swing.JDialog {

public dialogo2(dialogo1 owner, boolean modal) {
    super(owner, modal);


[/code]
Agora surgiu outro obstaculo.

Eu criei um exemplo para testes com 04 janelas 1 principal e 3 JDialog’s. Eu consigo acessa-las em sequência.

Minha pergunta é:
É possivel eu chamar por exemplo o dialogo3 de outra parte que não seja o dialogo2 (podendo chama-lo de onde eu quiser do principal ou do dialogo1).
Ou será necessário eu criar tantos JDialog’s quanto for necessário mudando o owner?

Me desculpem se minhas perguntas forem muito infantis, eu estou apenas começando na programação. Se for necessário abrir outro tópico me avisem por favor.

Desde já mto obrigado.
[/quote]

Existem relações do que o JDialog vai bloquear, se bloqueia toda a aplicação, ou apenas bloqueia o owner dele, ou não bloqueia, etc.
Mais sobre:
http://java.sun.com/docs/books/tutorial/uiswing/misc/modality.html

Você usa o método setModalityType no JDialog:
http://java.sun.com/javase/6/docs/api/java/awt/Dialog.html#setModalityType(java.awt.Dialog.ModalityType)
Passando por parâmetro um ModalityType:
http://java.sun.com/javase/6/docs/api/java/awt/Dialog.ModalityType.html

Espero que ajude.
Abraços!

( Ah, “eu nunca dou o peixe, e sim tento ajudar a encontrar onde é o melhor lugar para pescar” )

:smiley:

Valeu dionat4n, hoje consegui alcançar o resultado que eu esperava. Mto obrigado

Quanto a história do peixe, é assim que a coisa tem que funcionar, a gente tem é que estudar mesmo.

Valeu mesmo pela ajuda.

Nas próximas duvidas volto ao GUJ

Eu passei por esse problema há um tempo atrás, precisava decidir o que seria bloqueado pelo JDialog, não encontrei documentação rapidamente sobre isso, depois de um tempo de pesquisas que encontrei meio que ao acaso. Isso não me fez esquecer como se resolve. Se eu te passasse a solução faria tu resolver isso e esquecer logo de como se resolve. Estudando é melhor, fixa o conhecimento para as próximas oportunidades.

Abraços!

Fala galera… era exatamente o que eu procurava e da forma como o magno_ir conseguiu deixar modal, eu tbm consegui… só que no meu caso ocorre um problema diferente…

Minhas configurações após a chamada de super com o Frame não estão Ok… resumindo, eu tenho um setRelativeTo(null) e o mesmo parou de funcionar… imagino que seja porque meu JFrame relativo agora é Owner… não sei… Agora ao invés de aparecer no centro da tela, o JDialog aparece no canto superior esquerdo de novo… se puderem me dá o caminho das pedras ficarei grato…

public FormItem(JFrame frame, boolean modal) {
        super(frame, modal);
        entrarTela();
}

public void entrarTela() {
        initComponents();
        setVisible(true);
        setLocationRelativeTo(null); // Esse comando simplesmente não funciona mais
}

Pense bem, não tem lógica deixá-lo visível e depois centrá-lo na tela. A lógica certa é centrar na tela e depois exibir.

public void entrarTela() { initComponents(); setLocationRelativeTo(null); setVisible(true); }
Pode usar esse método também ( é free :smiley: ):

Mais informações sobre a ordem dos métodos:
http://java.sun.com/docs/books/tutorial/uiswing/components/frame.html

cara… valew… resolvido… vou dar uma olhhada nos artigos agora… Falows :wink:

De nada!

Leva um tempo para entender a sequência, mas depois faz sentido o ordem dos métodos.

Abraços!

Pessoal como criar um JDialog no netbeans, alguém pode me ajudar?
Alguém pode me ajudar com algum exemplo como por exemplo um JFrame chamando um JDialog.