E ae pessoal, tudo blz?
Entao, eu tava querendo fazer uma aplicação q abre uma janela, dakelas tipo popup sem barra, q abrisse na tela na frente das outras aplicações q estejam rodando, mas q o foco nao ficasse na minha aplicação e sim continuasse nas aplicações q ja estão abertas!
Exemplo,
estou digitando algum texto no word e quando alguem fica online no msn abre akele popup no canto inferior direito sem q tire o foco do word! Eh isso q eu to querendo!
Mas esse JWindows permite-me fazer oq eu quero? pq o importante eh q ela apareça na frente da janela de alguma outra aplicação q estava rodando antes, sem q essa aplicação, mesmo estando atras, perca o foco!
Me mostra o código de como fazer isso pq nao consegui!
Vlw! T+!
Eu poderia escrever um exemplo de codigo completo (q me tomaria um tempinho precioso e te deixaria mal acostumado), mas não é necessário, os exemplos já estão escritos:
mas acho q esse texto q vc me passou na resolve o meu problema! ele fala de tratar o focus system entre os componentes dentro de um JWindow e nao entre as janelas abertas na tela! mas lendo o texto acho q consigo descrever o problema com maior clareza!
Eu quero q quando minha aplicação for iniciada a sua janela fique prominente mas q o programa q estava rodando antes continue com o keyboard focus! ae se o kra ta com o word aberto e digitando o texto e minha aplicação inicia, abrirá uma tela prominente mas se o kra continuar digitando o texto ainda continuara sendo digitado no word mesmo estando atras!
espero q alguem tenha alguma solução pra isso! t+ pessoal!
[quote=thingol]Se você quer só mostrar um popup no canto inferior direito, tente um balão, como o que o mostrado por setTooltip da classe TrayIcon:
setTooltip[/quote]
Eu não quero soh mostrar um popup no canto inferior direito! =S
Eu quero mostrar uma janela mesmo do tamanho da tela, mas q ela se comporte como o popup do msn! sem interferir nos programas rodando atras! entende?
[quote=wellington7]Vamos lá… você nem tentou com a JWindow…
Quer de bandeja mesmo? Tá aí então, mas não se acostume…[/quote]
huauau… :lol:
mas eu ja tinha implementado assim e nao tinha dado certo! agora tentei implementar denovo desse jeito q vc fez e continua dando errado! funciona mas não como eu to querendo, continua roubando o foco da janela q ja estava aberta!
Se tiverem alguma idéia do q possa estar acontecendo aki, me avisem!
T+ pessoal!
Q estranho! :?
Mas de acordo com a documentação, a JWindow não deveria roubar o foco mesmo! :?
Vou desinstalar tudo e instalar denovo atualizado pra ver se funciona! T+!
[quote=henriqueers][quote=wellington7]Vamos lá… você nem tentou com a JWindow…
Quer de bandeja mesmo? Tá aí então, mas não se acostume…[/quote]
huauau… :lol:
mas eu ja tinha implementado assim e nao tinha dado certo! agora tentei implementar denovo desse jeito q vc fez e continua dando errado! funciona mas não como eu to querendo, continua roubando o foco da janela q ja estava aberta!
Se tiverem alguma idéia do q possa estar acontecendo aki, me avisem!
T+ pessoal![/quote]
Kra, desinstalei tudo e instalei denovo! Agora sim funcionou! :lol:
Da primeira vez q vc me falou pra usar JWindow eu ja tinha feito uma implementação semelhante a essa sua, mas nao tinha rodado, ae pensei q tinha implementado errado! :-o
Uma coisa relativamente simples… o problema é saber o caminho das pedras…
Entao vamos la, para outros que como eu bateram um pouco de cabeça…
Para um JFrame abrir sem receber o foco, antes do setVisible, invoque o metodo setFocusableWindowState(false);
Este método faz com que a JFrame nao receba o foco
Invoque o metodo setVisible(true);
Novamente, invoque o metodo setFocusableWindowState(true), caso como eu, voce precise interagir com a janela, como mover ou clicar em botoes;
Use o JWindow, caso a mensagem seja estatica, e a janela oculte automaticamente depois de um tempo…
Use o JFrame, para mover ou interagir com a janela
entao fica ai a dica:
JFrame frm = new JFrame();
frm.setPreferredSize(new Dimension(200, 100));
frm.setFocusableWindowState(false);
frm.setVisible(true);
frm.setFocusableWindowState(true); // Caso o Frame necessite receber o foco com um clique do mouse, por exemplo...