Assim,
preciso fazer um case de desligamento do sistema…(programa servidor)
o servidor informa todos os clientes conectados que o sistema sera desligado tal hora…
dai… quando faltar uns 5 minutos para o tempo chegar…
quero disparar um alerta…
“O sistema será desligado em 00:05:00 \nSalve o que estiver fazendo.”
e dai fica ali… sem poder fechar a mensagem… com o tempo rolando…
alguem pode dar uma luz de como ficará o codigo ?
cara, se eu fosse usuário deste sistema ficaria puto, mas te ajudando, se você estiver utilizando uma camada física adicional você poderia utilizar o TimeService, caso contrário o Quartz irá te ajudar melhor neste caso
fala fael
me ajudando denovo 
Bah, ficaria puto
srsarhsairsa
mas é que assim.
o sistema tem que ser desligado em alguns momentos…
por ex para atualizações…
entao tenho que parar o servidor…
atualizar e restartar…
n posso so derrubar os usuarios … dai vo enviar uma mensagem avisando…
dei uma lida no timerSession que vc passou…
isso ja atende uma parte do que eu preciso…
cabei de olhar … mais tarde vo implementar…
vo dar mais uma olhada pra ver como funciona a parte do tempo rolando…
pode mandar uma dica de qual OptionPane usar ?
tipo… um InformMessage…
mas n quero q ele de ok… nem possa fazer nada com a mensagem…
ou fecha o sistema… ou fica olhando pra mensagem…
com o tempo decrescendo ate o sistema se fechar…
…
tem essa parte do tempo decrescendo tbm…
q n sei direito o que fazer…
vo criar um MessageTimer ? ^^ um option com um label q vai se atualizando ?
vlw
paralizar o sistema enquanto o usuário está usando não é nada bom, apenas para casos de problemas emergenciais de infra-estrutura, e mesmo assim, ainda para estes casos, devem ser planejados com antecedência e agendados em horários onde quase não há uso, falando a verdade para o usuário, por exemplo ::
o usuário não tem nada a ver com isso. já pensou você acessando seu e-mail e uma contagem destas de repente iniciar paralisando tudo, sem ao menos poder salvar e tal.
eu acho que no seu caso você poderia utilizar o java web start, pois antes de iniciar a aplicação, ele já checa para você de novas atualizações, garantindo que o cliente está executando a versão mais atual do seu projeto
lembre-se uma atualização emergencial não-preventiva é uma atualização não planejada
mais sobre java web start
http://delicious.com/popular/webstart
realmente eu intendo isso …
mas ha casos…
que por alguma falha … geralmente nos testes…
ten-se que corrigir com urgencia um bug do sistema…
e eu tenho que atualizar.
restartar o servidor…
e nessa o cliente eh desconectado…
ai quero avisar primeiro o usuario…
tal hora o sistema vai cair…
ou entao…
daki tantos minutos…
posso lançar um aviso dizendo que o sistema vai ser atualizado as 10 da manha…
e se alguem tiver conectado…
quando for 5 pras 10…
quero lançar essa mensagem…
"faltam 5 minutos para atualização do sistema… salve e feche o que esta fzdo…"
e quero que a tela fike ali…
com o tempo correndo…
o usuario vai salvando o que tem pra fazer…
mas a mensagem ta ali…
com o tempo correndo.
obrigado pelas dicas 
Resolvido.
Para criar um painel de mensagem sem os Minimizar, Maximizar, Fechar.
usei um JDialog
Colokei ele bem no canto…
com uma mensagem… TextArea.
e um JLabel + JTextField mais abaixo…
o textField é o tempo decrescendo…
Timer t = null;
actionTimer aTimer = new actionTimer(miliseg, tfTime, principal);
t= new Timer(1000, aTimer);
aTimer.setTimer(t);
t.start();
Usei a classe Timer da “javax.swing” para ficar decrementando o tempo de 1 em 1 segundo.
/**
* Action Listener que atualiza o tempo que falta pra desligar.
*/
private class actionTimer implements ActionListener {
/** TextField que contem o tempo*/
private JTextField tfTimer;
/** tempo faltante em milisegundos */
private long time;
/** usado para rodar o relogio regressivo*/
private Calendar date;
private Timer timer;
private FramePrincipal f;
public actionTimer(long time, JTextField tf, FramePrincipal f) {
this.time = time;
this.tfTimer = tf;
date = Calendar.getInstance();
this.f = f;
}
public void setTimer(Timer t) {
this.timer = t;
}
/** Diminui o contador até chegar em 0.
* O contador representa o tempo faltante para desligamento do sistema.
*/
public void actionPerformed(ActionEvent e) {
time -= 1000;
date.set(Calendar.HOUR, 0);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.SECOND, 0);
date.setTimeInMillis(date.getTimeInMillis() + time);
DateFormat df = SimpleDateFormat.getTimeInstance();
tfTimer.setText(df.format(date.getTime()));
if(time <= 0) {
timer.stop();
MessagesDialog.warningMessage("Saindo do sistema \n\nRazao:\n" +msg);
f.actionSair();
}
}
}
Vlw ae.
e para quem pecisar um dia ta ai o codigo.