Pessoal, eu tenho uma aplicação Swing onde chamo programas externos através de
Processprc=rt.exec(comando,ambiente,arquivo);
até aí tudo tranquilo, o problema é que eu gostaria que a janela chamada fosse modal em relação ao sistema, ou seja, a pessoa só possa voltar a executar o sistema a partir do fechamento da tela, alguém sabe como fazer isto?
Desculpe, mas não entendi, exatamente onde eu deveria usar o JDialog?
phpinheiro
santoro,
A sua aplicação em java chama outro programa independente? E vc quer que este programa seja modal?
A dúvida é: o que tem com o swing? O programa é exibido dentro de uma janela da sua aplicação ou é totalmente independente da sua aplicação(só é chamado por ela)?
Estou com um problema mais ou menos parecido com o seu.
santoro
Para ficar mais claro, tentei simplificar ao máximo o código
publicclassfrmTelaPrincipal1extendsjavax.swing.JFrame{publicJFramejanela=newJFrame();publicfrmTelaPrincipal1(){initComponents();setLocationRelativeTo(null);janela=this;}privatevoidinitComponents(){// aqui vai a parte de layout}// ao clicar no botao chama este metodopublicvoidexecGx(){Runtimert=Runtime.getRuntime();String[]comando=newString[9];// aqui vao varios comandos pois chama um java web start com varios parametrosString[]ambiente={"path;"};// se precisar de variáveis de ambiente, colocar aqui.Stringcaminho="c:\\java\\Genexus Web Start";Filearquivo=newFile(caminho);try{rt.exec(comando,ambiente,arquivo);}catch(Exceptionex){ex.printStackTrace();}}publicstaticvoidmain(Stringargs[]){java.awt.EventQueue.invokeLater(newRunnable(){publicvoidrun(){newfrmTelaPrincipal1().setVisible(true);}});}
phpinheiro
Blz,
no caso vc quer que “Genexus Web Start” fique modal?
Cara, acho que isso é lance do SO. Estou precisando fazer isso aqui com runtime também. Estou olhando alguma coisa de passagem de mensagem pro SO, mas tá osso.
Não sei se é exatamente o que vc precisa, mas vou ver o que tenho aqui.
santoro
Isso mesmo a aplicação é Genexus e roda com Java Web Start, o que quero é que esta aplicação fique modal, mas tá complicado, não entendi direito como seria a mudança para o JDialog que foi falado.
phpinheiro
Acredito que o que o Matheus falou foi controlar uma janela modal da sua aplicação.
Se vc tiver várias janelas na sua aplicação, deixar uma modal. O lance é que ela fica modal somente pra sua aplicação. Se vc abrir outro programa, este outro programa vai ficar por cima da sua aplicação, mesmo que a jdialog seja modal.
Agora, deixar um programa externo modal não sei se rola. O que dá pra fazer é jogar ele pra cima de tudo utilizando as mensagens do SO que mencionei antes. Mesmo assim vc pode abrir outro ou mudar por alt+tab.
santoro
Então pelo que percebi o Java Web Start abre a aplicação (tipo abrindo o JWS) e depois chama o programa que eu passei, este está sendo um problema, se abrisse direto o programa que passei eu poderia usar