Foco na Janela

6 respostas
D

Galera,

eu tenho uma aplicação em SWING e estou com dificuldades para setar o FOCO da janela.
Ex: Eu minimizei a janela, e um determinado método meu após algum tempo seta o foco da janela, e a mesma começa a piscar na barra de tarefas, tipo o MSN quando vc minimiza a janela).

Alguem sabe como fazer isso?

6 Respostas

marcos.junqueira

cara, dah uma olhada ai no javadoc da swing, se não me engano tem alguma coisa como requestFocus() ou setFocused()

ViniGodoy

Para setar o foco em sua janela use:
suaJanela.requestFocus().

Se você quiser setar foco em component, sem que isso traga a janela para frente use
componente.requestFocusInWindow().

D

eu tentei, mas não rolou!

requestFocusInWindow() retorna sempre false, quando a janela está minimizada…e não dá sinal de vida nenhum!

D

galera! REsolvi o problema!

é só chamar isso aqui no JFRAME

toFront();

caso você queira um Aways on Top basta fazer assim

/**
* Chame isso no construtor
*/
public void initialize() {
      TopThread top = new TopThread();
      top.start();
}

/**
* Coloque essa inner class ai
*/
class TopThread extends Thread {
      public void run() {
            while(true) {
                  toFront();
                  /**
                  * Let 10 milliseconds for other code to execute
                  */
                  try {
                        Thread.sleep(10);
                  }
                  catch(Exception e) {
                        // Nothing to do
                  }
            }
      }
}
Proteu_Alcebidiano

DexterDF:
Galera,

eu tenho uma aplicação em SWING e estou com dificuldades para setar o FOCO da janela.
Ex: Eu minimizei a janela, e um determinado método meu após algum tempo seta o foco da janela, e a mesma começa a piscar na barra de tarefas, tipo o MSN quando vc minimiza a janela).

Alguem sabe como fazer isso?

Uma vez precisei fazer um chat e usei o frame.setVisible(true). Quando a janela ficava minimizada e alguem mandava uma mensagem, a janela ficava piscando tambem.

T+

lina

Oi,
Eu consegui com o frame.setVisible(true) que o Proteu falo.

Tchauzin!

Criado 21 de dezembro de 2006
Ultima resposta 8 de jan. de 2007
Respostas 6
Participantes 5