JFrame semelhante ao JOptionPane

3 respostas
L

bom dia :smiley:

Estou construindo um formulário Jframe que tenta imitar o JOptionPane, apenas por aprendizado. Porém há alguns efeitos que não estou conseguindo reproduzir no meu Jframe.

:arrow: Quando se clica em uma janela que “chamou” o JOptionPane, ele impede o focus dessa mesma janela e ainda “pisca” quando isso acontece.
:arrow: Quando a janela da aplicação é minimizada, o JOptionPane é minimizado junto e o mesmo acontece na maximização.
:arrow: Quando a aplicação está minimizada o JOptionPane não aparece na barra de ferrementas, somente a janela da aplicação.

Entenda por “janela da aplicação”, a janela principal do programa ou janela que chamou o JOptionPane.

Eu acho que explicação para o 3° item, pode ser que o JOptionPane seja “terminado” quando a aplicação é minimizada e “criado” quando ela é maximizada, isso é uma suposição.

Se alguem puder me ajudar eu agradeço. :smiley:

ps: Eu criei este tópico pq todos os tópicos que eu achei referente ao JOptionPane abordavam a criação/tradução do mesmo e não a sua implementação.

3 Respostas

fredsilva.sistemas

Olá loading…, seja bem vindo ao fórum!
Esta implementação que vc está fazendo seria mais eficiente com JDialog, pois ele tem alguns recursos que vc está procurando que o JFrame não tem, como e clicar na janela principal e ele não deixar, além de disponibilizar apenas o botão de fechar…
Ao invés de usar o JFrame, usa o JDialog!
Falow!
T+

lina

loading…:

:arrow: Quando se clica em uma janela que “chamou” o JOptionPane, ele impede o focus dessa mesma janela e ainda “pisca” quando isso acontece.
:arrow: Quando a janela da aplicação é minimizada, o JOptionPane é minimizado junto e o mesmo acontece na maximização.
:arrow: Quando a aplicação está minimizada o JOptionPane não aparece na barra de ferrementas, somente a janela da aplicação.

Oi,

:arrow: Você está utilizando uma janela que tenha a propriedade setAlwaysOnTop(true) ?
:arrow: Por isso recomendo utilizar um JDialog no lugar de JFrame. Você poderá executar a função setModal(true) para desabilitar o click na janela anterior. (Igual ao efeito de um JOptionPane).
:arrow: Acredito que isso aconteca pq sua JOptionPane para o SO é uma “filha / gemea siames” da classe que a chamou. Então o SO subentende que é apenas 1 janela.

Tchauzin!

L

Obrigado.
Vou testar a idéia de vcs amanhã, depois posto o resultado aqui.

ps:obrigado pelas boas vindas :lol:

Criado 23 de agosto de 2009
Ultima resposta 24 de ago. de 2009
Respostas 3
Participantes 3