Piscar taskbar semelhante ao msn

10 respostas
D

Olá pessoal, gostaria de saber se alguém ai já fez ou tem idéia de como fazer para que ao determinado evento de meu JFrame ele comece a piscar na barra de tarefas, apenas quando o foco nao estiver com ele,
na prática seria tipo o MSN, ao receber uma mensagem e a janela nao estiver com focus então piscar a barra de tarefas. Obrigado.

10 Respostas

lina

Oi,
ao recerber a mensagem defina sua janela com setVisible(true);

Demorei também pra achar isso… era uma coisa tão tosca que nunca havia pensado hahahaha =)

bzy

Farei algo parecido e estou pensando em definir cores de fundo diferentes (por segundo) dando a impressão de estar piscando, ou simplesmente troco a cor quando tiver algo.

D

nao sei se fui muito claro, mas é que no meu caso o meu programa nao deve assumir o foco ao receber a mensagem, quando voce esta no icq/msn etc, quando recebe uma mensagem e ja possui uma janela com essa pessoa o que acontece é que simplesmente comeca a piscar o contato na barra de tarefas, mas se voce está por exemplo no Netbeans voce não perde o foco do netbeans. Com o setVisible(true) o programa que eu estava anteriormente fica por trás, tem que ser algo diferente, cheguei a ver uma biblioteca chamada JDIC, mas nao funcionou legal…
o código é o seguinte:

public void insereMensagem(String mensagem, String usuario) {
        
        if (mensagem != null) {
            String data = DataSistema.RetornaData();
            
            String text = "<b> <font size=4 color=black> ["+data+"] "+Usuario.retornaNomeUsuario(usuario)+": "+ mensagem+"\n </font> </b>";
            try {
                editorKit.insertHTML(doc, doc.getLength(), text, 0, 0, null);
            } catch (BadLocationException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            ds_MensReceb.setCaretPosition(doc.getLength());
            
            this.setVisible(true);
            
        }
        
    }
lina

Mudar a corzinha é meiu dificil…
não tenho nenhuma ideia no momento… até porque só conheco o setVisible, ou entao o beep do ToolKit…

lina

Então…
não entendi bem…
tipo, mande uma mensagem com formato de “error”… assim a janela pisca tbm…

bzy

Estou pensando em usar um Thread para ir trocando a cor, já tentou algo assim? Não estou ajudando muito né… Foi mal.

Luiz_Aguiar

Isso não é algum recursos do SO que vc precisa saber como “chamar” ?

Exemplo tosco: uma janela que está atrás de uma janela modal requisita o foco, ai o windows faz ela “piscar” na barra de tarefas…

Sinceramente não sei como seria isso de fazer ficar piscando não :frowning:

D

olha acredito que seja algo do SO igual o Luiz Aguiar disse, porém como fazer… aí que tá, ja tentei deixar a janela de tanto jeito mas não funfa…

diegolanfranchi

Pra piscar eu não achei, mas no método a seguir ele faz “acender” o ícone na barra de tarefas.

// este if dentro do Ouvinte
if (!seuFrame.isFocused()) {
	seuFrame.requestFocus();
}
diegolanfranchi

Na verdade cheguei a melhorar a ideia. Você pode fazer algo como:

class Piscar implements Runnable {
	
	JFrame piscarFrame;
	
	Piscar(JFrame framePiscar) {
		this.piscarFrame = framePiscar;
	}

	@Override
	public void run() {
		while (!piscarFrame.isFocused()) {
			piscarFrame.requestFocus();
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			piscarFrame.setFocusable(false);
			piscarFrame.setFocusable(true);
		}
	}
		
}

e usar como:

if (!seuFrame.isFocused()) {
	Thread t = new Thread(new Piscar(seuFrame));
	t.start();
}
Criado 14 de fevereiro de 2007
Ultima resposta 11 de set. de 2013
Respostas 10
Participantes 5