Seja bem vindo ao Fórum do JavaFree.org
Aqui você irá encontrar respostas para TUDO o que você precisa sobre java.
Deseja participar? Crie sua conta ou efetue seu login
Gostaria de saber se existe algum método() ou alguma maneira de fazer uma aplicação Java chamar outra aplicação Java Externa por meio de um ActionPerformed de um botão, e ao fechar qualquer uma delas a outra não feche também (afinal de contas ambas estão configuradas como setDefaultCloseOperation(EXIT_ON_CLOSE)). Minha intenção é criar um programa modular (em que o cliente opte por quais módulos ele tem interesse, e a partir da identificação de uma necessidade adicional ele possa adquirir o módulo desejado sem ter que trocar o programa inteiro. Vale ressaltar que ambos os programas compartilham da mesma biblioteca (um Driver JDBC para conexão com o banco de dados) e que, no caso de instalar um ou mais módulos, todos serão instalados na mesma pasta raiz para poderem ter acesso à pasta lib (em comum).
Obrigado aos que puderem me dar alguma dica!!!
Na verdade são dois JAR's mesmo. Ou seja, um JAR chamando o OUTRO.
E que diferença isso faz?
Se o jar estiver no CLASSPATH do outro, você pode usas as classes dele do mesmo jeito.
A questão é: Você quer duas aplicações independentes, mas com alguma comunicação entre si, ou simplesmente usar as JFrame do outro .jar? _________________Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
"The mod javafree deserves, but not the one it needs right now."
As Aplicações são independentes, mas quero que exista a possibilidade de comunicação entre os módulos. Para ser mais claro... Criei uma aplicação (JAR) para Cadastro de Clientes, um JAR para Cadastro de Funcionários, um JAR para Cadastro de Serviços e outro JAR para Cadastro de Agendamento de Serviços (Data e Hora Marcada). Minha intenção é quando abrir o programa "Agenda.JAR" para fazer um agendamento e por acaso o cliente ainda não for cadastrado no estabelecimento, o funcionário poder abrir o programa de cadastro de clientes a partir da Agenda, sem ter que sair de um programa para fazer o cadastro e depois voltar. Existe uma tela intermediária (um Grid com um tf para pesquisar o cliente e uma jTable para Carregar os clientes do banco de dados, além de um botão para adicionar um novo cliente, que deverá chamar a minha aplicação "CadCliente.JAR".
Eu também podia Criar o programa Agenda.JAR copiando todas as classes dos outros programas para dentro desse projeto, mais dessa forma perderia o sentido de MODULAR o PROGRAMA.
Como posso configurar um JAR no classpatch de outro JAR (devo fazer isso para ambos os JAR's?) Utilizo o NetBeans 7.1 (como realizo essa inclusão?)
Obrigado.
Ou seja, você simplesmente dividiu todos os seus "cadastros" em .jar diferentes.
Isso não torna as aplicações indepentes.
Você simplesmente vai chamas as JFrame do outro .jar, não muda nada. _________________Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
"The mod javafree deserves, but not the one it needs right now."
Para esse Exemplo que eu dei, realmente as aplicações não são independentes, mas isso porque meu projeto ainda está no início. Pretendo ainda construir a parte de Controle de Estoque e Frente de Loja (que compartilharão o Cadastro de Clientes, Funcionários, Serviços, Produtos, Fornecedores, Entradas, Saídas, Cabeçalho da venda e Detalhes da venda, e nesse caso não teria a necessidade de criar essas classe novamente para os outros módulos. Mas por agora, para o projeto Agenda, os cadastros realmente não são independentes do meu programa principal (Agenda).
Sendo assim, como posso chamar a JFrame de um JAR a partir de outro JAR? É justamente nesse ponto que estou me "batendo".
Para esse Exemplo que eu dei, realmente as aplicações não são independentes, mas isso porque meu projeto ainda está no início. Pretendo ainda construir a parte de Controle de Estoque e Frente de Loja (que compartilharão o Cadastro de Clientes, Funcionários, Serviços, Produtos, Fornecedores, Entradas, Saídas, Cabeçalho da venda e Detalhes da venda, e nesse caso não teria a necessidade de criar essas classe novamente para os outros módulos. Mas por agora, para o projeto Agenda, os cadastros realmente não são independentes do meu programa principal (Agenda).
Sendo assim, como posso chamar a JFrame de um JAR a partir de outro JAR? É justamente nesse ponto que estou me "batendo".
Sim, não muda nada.
E com o controle de estoque não vai mudar nada.
Se os .jar estiverem no classpath e você tiver acesso às classes por fora do pacote, não muda nada. _________________Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
"The mod javafree deserves, but not the one it needs right now."
BLZ, então, como faço para configurar o classpath dos meus JAR's para que um enxergue o outro, e eu possa ter acesso e utilizar suas classes a partir de outro JAR?
BLZ, então, como faço para configurar o classpath dos meus JAR's para que um enxergue o outro, e eu possa ter acesso e utilizar suas classes a partir de outro JAR?
VALEU !!!!! Não imaginei que fosse tão simples assim!!! já olhei diversos Foruns que apresentaram milhares de códigos mirabolantes e um inclusive criando uma THREAD. Só mais um detalhe, o fato das aplicações estarem configuradas como setDefaultCloseOperation (EXIT_ON_CLOSE) fechará meu programa principal caso alguma tela secundária seja fechada? Devo alterar a propriedade para DISPOSE ou HIDEN?
VALEU !!!!! Não imaginei que fosse tão simples assim!!! já olhei diversos Foruns que apresentaram milhares de códigos mirabolantes e um inclusive criando uma THREAD. Só mais um detalhe, o fato das aplicações estarem configuradas como setDefaultCloseOperation (EXIT_ON_CLOSE) fechará meu programa principal caso alguma tela secundária seja fechada? Devo alterar a propriedade para DISPOSE ou HIDEN?
Acho que isso finaliza o tópico!!!!
Muito obrigado MESMO!!!!
Sim sim, EXIT_ON_CLOSE vai terminar a aplicação toda.
Quando se tem várias JFrames na aplicação, geralmente elas deviam ficar com DISPOSE_ON_CLOSE e só a principal com EXIT_ON_CLOSE _________________Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
"The mod javafree deserves, but not the one it needs right now."
Sim sim, EXIT_ON_CLOSE vai terminar a aplicação toda.
Quando se tem várias JFrames na aplicação, geralmente elas deviam ficar com DISPOSE_ON_CLOSE e só a principal com EXIT_ON_CLOSE
assassino de JVM!
Eu nunca uso, e aconselho a não usar o EXIT_ON_CLOSE - ele mata a JVM sem levar em conta o que estiver rodando.
Sem usar o EXIT_ON_CLOSE, se todas as janelas forem fechadas e não tiver nenhuma Thread (não-daemon) rodando, a JVM irá fechar NORMALMENTE, eventualmente executando qualquer código necessário para finalizar corretamente a aplicação.
Em aplicações muito pequenas isso não tem importância, mas na hora que fizer algo um pouco maior, pode fazer uma diferença brutal! _________________ Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
Sim sim, EXIT_ON_CLOSE vai terminar a aplicação toda.
Quando se tem várias JFrames na aplicação, geralmente elas deviam ficar com DISPOSE_ON_CLOSE e só a principal com EXIT_ON_CLOSE
assassino de JVM!
Eu nunca uso, e aconselho a não usar o EXIT_ON_CLOSE - ele mata a JVM sem levar em conta o que estiver rodando.
Sem usar o EXIT_ON_CLOSE, se todas as janelas forem fechadas e não tiver nenhuma Thread (não-daemon) rodando, a JVM irá fechar NORMALMENTE, eventualmente executando qualquer código necessário para finalizar corretamente a aplicação.
Em aplicações muito pequenas isso não tem importância, mas na hora que fizer algo um pouco maior, pode fazer uma diferença brutal!
Exato.
Aplicações com várias Threads ou com serviço pesado de "background" normalmente tem problemas com o "EXIT_ON_CLOSE".
PERAÍ... Como posso finalizar uma aplicação (Tela Principal) então? O HIDEN só esconde a tela mas não encerra a JVM e portanto continua consumindo CPU e Memória. O Dispose (destroi o objeto ativo) já é utilizado para encerrar as telas secundárias do programa sem fechar o programa principal e o EXIT_ON_CLOSE é "Assassino de JVM". Existe um momento em que o programa principal precisará ser encerrado, como por exemplo no final de expediente, antes de desligar o computador. Nesse caso o que vc sugere???
PERAÍ... Como posso finalizar uma aplicação (Tela Principal) então? O HIDEN só esconde a tela mas não encerra a JVM e portanto continua consumindo CPU e Memória. O Dispose (destroi o objeto ativo) já é utilizado para encerrar as telas secundárias do programa sem fechar o programa principal e o EXIT_ON_CLOSE é "Assassino de JVM". Existe um momento em que o programa principal precisará ser encerrado, como por exemplo no final de expediente, antes de desligar o computador. Nesse caso o que vc sugere???
PERAÍ... Como posso finalizar uma aplicação (Tela Principal) então? O HIDEN só esconde a tela mas não encerra a JVM e portanto continua consumindo CPU e Memória. O Dispose (destroi o objeto ativo) já é utilizado para encerrar as telas secundárias do programa sem fechar o programa principal e o EXIT_ON_CLOSE é "Assassino de JVM". Existe um momento em que o programa principal precisará ser encerrado, como por exemplo no final de expediente, antes de desligar o computador. Nesse caso o que vc sugere???
PERAÍ você - já tinha respondido:
simu
[...]
Sem usar o EXIT_ON_CLOSE,
se todas as janelas forem fechadas
e não tiver nenhuma Thread (não-daemon) rodando,
a JVM irá fechar NORMALMENTE
[...]
OK, na verdade é suficiente que nenhuma Thread não-daemon esteja rodando... (uma janela aberta implica em Threads da GUI ativas)
mas se estiver rodando uma Thread que não foi definida como sendo daemon, a JVM não irá terminar. _________________ Nome real: Carlos F. Heuberger
Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!
rolipam78Posts:13
Boa noite Gente!!!
Gostaria de saber se existe algum método() ou alguma maneira de fazer uma aplicação Java chamar outra aplicação Java Externa por meio de um ActionPerformed de um botão, e ao fechar qualquer uma delas a outra não feche também (afinal de contas ambas estão configuradas como setDefaultCloseOperation(EXIT_ON_CLOSE)). Minha intenção é criar um programa modular (em que o cliente opte por quais módulos ele tem interesse, e a partir da identificação de uma necessidade adicional ele possa adquirir o módulo desejado sem ter que trocar o programa inteiro. Vale ressaltar que ambos os programas compartilham da mesma biblioteca (um Driver JDBC para conexão com o banco de dados) e que, no caso de instalar um ou mais módulos, todos serão instalados na mesma pasta raiz para poderem ter acesso à pasta lib (em comum).
Obrigado aos que puderem me dar alguma dica!!!
sekkuarPosts:5998
Duas "aplicações" diferentes? ou duas "JFrame" diferentes?
Eu acho que o que você quer saber é Como abrir uma JFrame de outra JFrame?
_________________Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
"The mod javafree deserves, but not the one it needs right now."