Olá pessoal, eu sei que essa pergunta é mais manjada do que a compra da sun pela oracle.
Mais a dúvida é a seguinte:
Eu tô criando um sistema e to tentando colocar a Hora(time atual) lá no título da janela, ou mesmo no meu painel.
Só que já busquei 800 tópicos(ou mais) e só achei pessoas falando algo assim:
Gregorian Calendar…(getInstance)
JCalendar…
Calendar…
Date…
Só que acho que de fato nenhum respondia minha dúvida. O que eu preciso é simples, colocar a hora ATUAL(quanto executar o programa), e depois ir atualizando…
13:55:10
13:55:11… Sendo que a nova data fica atualizando em cima daquela, compreendem?
Bem, estarie no aguardo de alguma ajuda, e desde já agradeço. :lol:
O problema é que você não soube pesquisar. Vc quer a hora local, então basta formatar um objeto do tipo java.util.Date usando um java.text.SimpleDateFormat.
Outro detalhe é que você precisa colocar a ação de obter a data e formatá-la em uma Thread que vai executar essa ação de tempos em tempos. Mais um detalhe é que como o Swing não é thread-safe, se você tentar atualizar o componente nessa thread sem delegá-la a outra thread usada pelo método invokeLater de SwingUtilities, seu programa vai parecer estar "travado".
Acabei de fazer um exemplo, dê uma olhada. Qualquer dúvida poste ai.
importjava.awt.BorderLayout;importjava.awt.Font;importjava.text.SimpleDateFormat;importjava.util.Date;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.SwingUtilities;/** * * @author David Buzatto */publicclassJFrameHoraextendsJFrame{privateJLabellabel;publicJFrameHora(){setSize(200,100);setTitle("Hora");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);label=newJLabel();label.setFont(newFont("Arial",Font.BOLD,35));label.setHorizontalAlignment(JLabel.CENTER);add(label,BorderLayout.CENTER);SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){newThread(newAtualizadorHora()).start();}});}publicstaticvoidmain(String[]args){SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){newJFrameHora().setVisible(true);}});}privateclassAtualizadorHoraimplementsRunnable{privateSimpleDateFormatsdf;publicAtualizadorHora(){sdf=newSimpleDateFormat("HH:mm:ss");}publicvoidrun(){while(true){try{label.setText(sdf.format(newDate()));Thread.sleep(500);}catch(InterruptedExceptionexc){exc.printStackTrace();}}}}}
[]'s
d34d_d3v1l
ah sim… vou te mostrar um vídeo, do prof Neri… ok?
vou procurar no youtube o video correto e te mostro aqui como que faz…
Neri é um péssimo exemplo de programador Java…
Não programa do “modo certo” além de fazer muita gambiarra…
Amigo, quando à java não sei pois não vi as aulas dlee, mais em relação à bando de dados e modelagem ele é show!
T
Two_
A do Java e do Adoble Flex é muito lixo…
d34d_d3v1l
…bom Two_, não estou aqui para discutir se o Neri é bom ou não programador… Aprendi muito com as video-aulas dele, e por ventura existe uma que tira a dúvida do nosso amigo … Então por isso postei aqui…
Agora se o jeito que ele não fez não é o correto, então ofereço minha humilde desculpa…
Abraços
Almeidaah
david e d34d :
Ambos ajudaram muito, já estou conseguindo implementar.
Muito obrigado
d34d_d3v1l
fico feliz…
pode colocar o resultado aqui qndo terminar? E de preferencia mudar o nome do tópico, colocando “[resolvido]” ? Ajuda muito outros usuarios que tem a mesma duvida…
abraços
Almeidaah
Então amigo, eu coloquei na JMenuBar… porquê essa era a minha intenção… a dificuldade mesmo era como instanciar a hora, compreende?
Mais tenho mais uma dúvida, tem como eu colcoar no canto direito da JMenuBar?
Outra coisa, eu não conseigo colocar um texto antes da hora… pois dentro do meu whie(true), fica com problema de repetir a hora… Segue o código.
Tive uma solução para o primeiro questionamento assim:
jlHoraAtual.setText(" Hora Atual : "+sdf.format(newDate()));
Mais isso é feio não é?
T
Two_
Almeidaah:
Então amigo, eu coloquei na JMenuBar… porquê essa era a minha intenção… a dificuldade mesmo era como instanciar a hora, compreende?
Mais tenho mais uma dúvida, tem como eu colcoar no canto direito da JMenuBar?
Outra coisa, eu não conseigo colocar um texto antes da hora… pois dentro do meu whie(true), fica com problema de repetir a hora… Segue o código.
Tive uma solução para o primeiro questionamento assim:
jlHoraAtual.setText(" Hora Atual : "+sdf.format(newDate()));
Mais isso é feio não é?
Almeida ficaria legal você dividir em 2 JTextField o primeiro é um texto estatico
txtHora.setText("Hora Atual:");
o Segundo a Hora atualizada por uma tread:
txtHoraComTread.setText(sdf.format(newDate()));
Almeidaah
Entendo amigo, e como eu poderia colocar esses 2 “textFields” no lado direito da JMenuBar?