Sei que posso utilizar o JDialog usando o metodo setModal(true) mas ocorre num problema, o JDialog habilita apenas o botão de fechar (X) e some com o minimizar e maximizar…
Qual a soloção para isso?
Como utilizar Janelas modais em um JFrame?
Sei que posso utilizar o JDialog usando o metodo setModal(true) mas ocorre num problema, o JDialog habilita apenas o botão de fechar (X) e some com o minimizar e maximizar…
Qual a soloção para isso?
Como utilizar Janelas modais em um JFrame?
Agradeço,
Fábio.
Se eu não me engano o JFrame também possui o método setModal, dessa forma seria só vc usar assim:
vc já tentou isso ??
[]s,
Fabrício.
F
fabio.candia
O JFrame não possui o método setModal(boolean b) não!!!
[]s…
Fábio.
brlima
Dá uma olhada nesse topico da sun.
Parece que vc pode criar um Panel modal, ou seja, escutando todos os eventos de janela…
Talvez te ajude:
Isso resolveu, o Frame não ficou modal, mas quem o disparou fica ouvindo e qdo ele perde o foco é forçado a ser apresentado novamente!
Achei o efeito estranho, mas resolve…
[]s…
Fábio.
dsiviotti
Substitua JFrame por JDialog. JDialog tem setModal(true).
F
fabio.candia
Douglas,
JDialog tem setModal(boolean b) sim, mas como eu disse na primeira mensagem se usar o JDialog os botões de maximizar / minimizar não aparecem… o JDialog não habilita esses botões… dessa forma não é interessante utiliza-lo…
A forma encontrada enviada em respostas anteriores funciona, mas causa um efeito estranho, pois o JFrame perde o foco e depois é jogado pra frente novamente…
Se alguém souber alguma outra solução…
Abraços,
Fábio.
L
Lindeberg
ei brlima,
Pegueiaqueleexemplofizumtestemasnaodeucerto.Fizoseguinte:
crieiumJFramechamadoprincipalcomapenasumbotao.Ecoloqueioseguintecodigonobotao:
modaltest=newmodal(); // modal eh um JFrameYourModalFramejmodal=newYourModalFrame(test);jmodal.show();
Nao vi nenhum tipo de efeito !!
valeu
F
fabio.candia
O efeito é que quando vc clica no JFrame q disparou o JFrameModal ele pisca a tela do JFrameModal… pq aquele código cria um Listener q fica verificando qdo o JFrameModal perde o foco e assim envia ele pra frente novamente!!!
Fábio.
L
Lindeberg
“fabio.candia”:
O efeito é que quando vc clica no JFrame q disparou o JFrameModal ele pisca a tela do JFrameModal… pq aquele código cria um Listener q fica verificando qdo o JFrameModal perde o foco e assim envia ele pra frente novamente!!!
Não entendi seu exemplo:
“modal” é uma herança de JFrame? Vc. implementa algo nele?
YourModalFrame? Quem é essa classe? Um JFrame qualquer?
Pq vc passa o “test” (que é um modal) para o construtor do YourModalFrame? Já que vc está trabalhando sobre o Principal?
Se vc. puder mandar o codigo fonte completo do seu exemplo eu agradeço.
[]s…
Fábio.
L
Lindeberg
O modal eh um JFrame. YourModalFrame eh a classe que o brlima passou no exemplo(aquela que tem o Listener).
Eu to na principal (no botao que tem nessa classe), a partir de dela eu crio um modal, passo entao esse modal para o construtor da classe YourModalFrame. E depois mando mostrar. Da uma olhada no codigo:
Essa aqui eh a classe YourModalFrame
Aqui eh a principal :
Aqui eh a modal (que ainda nao eh modal, mas vai ser !!)
F
fabio.candia
no seu exemplo aonde vc colocar o código:
YourModalFrame jmodal = new YourModalFrame(test);
OBS: modal deveria herdar do YourModalFrame e o “this” está referenciando ao proprio Principal… vc vai criar um novo JFrame (modal) onde o owner é o Principal!!!
qto a sua questão anterior que vc pergunta se está correto:
this.owner = owner;
está correto sim, dessa forma vc está configurando sua variavel private owner da classe com o parametro owner passado para o construtor.
L
Lindeberg
“Fábio R. Candiá”:
no seu exemplo aonde vc colocar o código:
YourModalFrame jmodal = new YourModalFrame(test);
OBS: modal deveria herdar do YourModalFrame e o “this” está referenciando ao proprio Principal… vc vai criar um novo JFrame (modal) onde o owner é o Principal!!!
qto a sua questão anterior que vc pergunta se está correto:
this.owner = owner;
está correto sim, dessa forma vc está configurando sua variavel private owner da classe com o parametro owner passado para o construtor.
Eu ja tentei isso, mas nao deu certo. Na classe YourModalFrame eu tenho que declara owner do tipo JFrame ??
F
fabio.candia
owner é do tipo JFrame sim!!!
segue abaixo um exemplo que eu fiz qdo testei isso!!!
é mais simples que o seu mas dá pra vc ver o funcionamento!!!
y.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
y.show();
Testando x = new Testando(y);
x.setSize(200, 150);
x.show();
}
public Testando(JFrame owner) {
super(“Modal Frame”);
this.owner = owner;
// we put a glass panel into the main frame
JPanel glassPanel = new JPanel();
glassPanel.setOpaque(false);
glassPanel.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
// blocking the events!!!
glassPanel.addKeyListener (new KeyAdapter() {});
glassPanel.addMouseListener (new MouseAdapter() {});
glassPanel.addMouseMotionListener(new MouseMotionAdapter(){});
owner.setGlassPane(glassPanel);
// the frame will listener owner windows events
owner.addWindowListener(this);
public void windowActivated(WindowEvent e) {
this.requestFocus();
}
public void windowDeactivated(WindowEvent e) {}
}
L
Lindeberg
Eu copiei e colei esse exemplo ai q vc deu, mas nao deu certo !!, acho q deve ser alguma especie de macumba ou algo do genero !!! Mas de qq forma, valeu pela atencao !!