JasperViewer fica "bloqueado" por um JDialog modal  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
fernandoeick
JavaEvangelist

Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline

Boa Tarde a todos,

Passei a tarde pesquisando no Google, GUJ e em vários fóruns e sites da internet tentando resolver este aparentemente simples problema. Encontrei várias pessoas que postaram a mesma questão (realmente idêntica) nos mais variados fóruns que tem por aí, e como semelhança, nenhum deles obteve uma resposta satisfatória.

Então, recorro ao GUJ, quem sabe há aqui algum fera em JasperReport para ajudar.

Seguinte:
Tenho um JDialog modal que tem um botão "Print" que chama um relatório feito no JasperReport. Só que o JasperViewer simplesmente fica bloqueado atrás do JDialog e não é possível visualizá-lo enquanto o JDialog não for fechado.

Alguém já passou por algo semelhante?

Agradeço!!

Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5

E dá-lhe Grêmio!
[MSN]
fernandoeick
JavaEvangelist

Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline

Somente para constar:

ALT + Tab e outras maneiras de alternar a janela sendo exibida não funcionaram.
setModal(false) também não funciona.

O que funciona é no momento em que é clicado no botão "Print" dar um setVisible(false) no JDialog. Mas isto não é muito funcional. Seria funcional, quem sabe, se no momento em que fizesso o clique no botão "Print" o JDialog recebesse um setVisible(false), mas no momento em que o usuário voltasse para a aplicação o JDialog fosse setVisible(true) novamente. Mas não sei qual evento poderia utilizar para ouvir quando o usuário retorna para a aplicação.

Qualquer ajuda é bem vinda.

Obrigado.

Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5

E dá-lhe Grêmio!
[MSN]
emmanuelrock
Java Ninja
[Avatar]

Membro desde: 07/05/2009 00:38:41
Mensagens: 291
Localização: Curitiba - PR
Offline

O certo seria você dar um dispose() no seu JDialog.

"Quem sabe que é profundo busca a clareza. Quem deseja parecer profundo para a multidão procura ser obscuro porque a multidão toma por profundo aquilo cujo o fundo não vê, ela é medrosa... exita em entrar na água" - Friedrich Nietzsche.
[Email] [MSN]
fernandoeick
JavaEvangelist

Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline

Mas se eu der um dispose() o JDialog será fechado. A funcionalidade desejada é mante-lo aberto. O que eu quero é poder visualizar o JasperViewer. E em último caso, eu poderia dar um dispose(), mas teria que restaurar a visibilidade do JDialog novamente depois.

Thanks...

Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5

E dá-lhe Grêmio!
[MSN]
emmanuelrock
Java Ninja
[Avatar]

Membro desde: 07/05/2009 00:38:41
Mensagens: 291
Localização: Curitiba - PR
Offline

Se não me engano o JasperViewer é um JFrame, se eu estiver correto você pode estendê-lo e implementar WindowListener, e no evento onClosing() chamar o JDialog, vê se isto é possível.

Abraço...

"Quem sabe que é profundo busca a clareza. Quem deseja parecer profundo para a multidão procura ser obscuro porque a multidão toma por profundo aquilo cujo o fundo não vê, ela é medrosa... exita em entrar na água" - Friedrich Nietzsche.
[Email] [MSN]
fernandoeick
JavaEvangelist

Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline

Na verdade eu to fazendo a maior gambiarra aqui.

Hoje pela manhã eu fiz um novo JDialog e copiei todo o conteúdo (getContentPane()) do JasperViewer para o JDialog. Até que ficou bom, mas não fiquei satisfeito com a solução, pois entre outras coisas, o JDialog não oferece os botões da Barra de Título. E conhecendo a nossa equipe de testes, resolvi buscar outra alternativa.

Agora a tarde pensei na solução que você acabou de sugerir de utilizar WindowListener. Mas está dando uma trabalheira, pois tenho que implementar todos os métodos, tanto para o JasperViewer quanto para o meu JDialog, ainda preciso prestar muita atenção em qualquer mínima ação realizada em ambas janelas, como: ativado, desativado, fechado, fechando, aberto, minimizado, restaurado para saber qual exibir e qual ocultar na hora correta.

Eles tem que trabalhar em total sintonia. Mas esta solução está ficando boa, estou quase finalizando.

Obrigado pela ajuda...

Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5

E dá-lhe Grêmio!
[MSN]
emmanuelrock
Java Ninja
[Avatar]

Membro desde: 07/05/2009 00:38:41
Mensagens: 291
Localização: Curitiba - PR
Offline

Falow Gremista...existem muitas vagas pra desenvolvedor ai em Campinas? Qualquer coisa dá um toque...

"Quem sabe que é profundo busca a clareza. Quem deseja parecer profundo para a multidão procura ser obscuro porque a multidão toma por profundo aquilo cujo o fundo não vê, ela é medrosa... exita em entrar na água" - Friedrich Nietzsche.
[Email] [MSN]
fernandoeick
JavaEvangelist

Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline

Eheh, falow!!

Existe bastante coisa sim. Tem algumas boas e grandes empresas para se trabalhar aqui, várias multinacionais. Se tiver afim, posso te passar semanalmente o boletim do RH do qual sou terceirizado onde eles divulgam todas as vagas de TI abertas.

Se tiver interessado, posso te encaminhar. Hoje mesmo eu recebi o desta semana.

Valeu...

Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5

E dá-lhe Grêmio!
[MSN]
emmanuelrock
Java Ninja
[Avatar]

Membro desde: 07/05/2009 00:38:41
Mensagens: 291
Localização: Curitiba - PR
Offline

Opa manda como mensagem privada...

"Quem sabe que é profundo busca a clareza. Quem deseja parecer profundo para a multidão procura ser obscuro porque a multidão toma por profundo aquilo cujo o fundo não vê, ela é medrosa... exita em entrar na água" - Friedrich Nietzsche.
[Email] [MSN]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team