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!
Aquela janela vc faz com JWindow, e o foco é o método setModal, se não me engano.
H
henriqueers
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+!
W
wellington7
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:
O que eles descrevem como “o problema de não ter foco”, é a solução que voce procura.
H
henriqueers
uhahauuhah… :lol:
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!
T
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:
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?
Se alguem puder me ajudar!
W
wellington7
Vamos lá… você nem tentou com a JWindow…
Quer de bandeja mesmo? Tá aí então, mas não se acostume…
importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JLabel;importjavax.swing.JWindow;publicclassWindowSemFocoextendsjavax.swing.JWindow{/** Creates new form NewJPanel */publicWindowSemFoco(){setSize(400,300);setAlwaysOnTop(true);add(newJLabel("Este JWindow não rouba o foco!! :)"));JButtonbtn=newJButton("Fechar");btn.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventarg0){System.exit(0);}});btn.setSize(20,10);add(btn);}publicstaticvoidmain(String...kbum){JWindowwindow=newWindowSemFoco();window.setVisible(true);}}
H
henriqueers
wellington7:
Vamos lá… você nem tentou com a JWindow…
Quer de bandeja mesmo? Tá aí então, mas não se acostume…
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!
W
wellington7
Alguém poderia dar uma terceira opinião?
Aqui o código roda sem roubar o foco.
Estou rodando em Windows XP, com Java 6.
H
henriqueers
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+!
M
Marcelo_FS
wellington7:
Alguém poderia dar uma terceira opinião?
Aqui o código roda sem roubar o foco.
Estou rodando em Windows XP, com Java 6.
Aqui o código roda sem roubar o foco. [2]
Windows XP, Java 1.6.0_10.
Também não sabia que o JWindow servia pra isso, mas agora essa informação vai ser útil Valeu pelo código wellington.
E
edipokbelo
Valeu pelo código Wellington7…
aqui funcionou sem foco mesmo
do jeito que o henriqueers queria
linux debian4.0 etch / java 1.6.0_10.
H
henriqueers
henriqueers:
wellington7:
Vamos lá… você nem tentou com a JWindow…
Quer de bandeja mesmo? Tá aí então, mas não se acostume…
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!
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
Vlw wellington7! T+!
F
fer_padov
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…
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:
JFramefrm=newJFrame();frm.setPreferredSize(newDimension(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...