Aê, pessoal, obtive a minha SCJP 5 em novembro, apesar de ter estudado o livro da Cathy Sierra apenas uma vez e não ter tido tempo para revisá-lo nem fazer simulados, por causa dos projetos em que trabalho…
Comemorando, segue um jar auto-executável e o respectivo código-fonte… se vocês gostarem eu posto um tutorial passo a passo explicando os comos e porquês das técnicas utilizadas, está bem arquitetado e organizado, e esse tutorial pode servir para explicar como criar engines de jogos super simples reutilizando a implementação do relógio…!
Requer jre 5
obs: por gentileza sempre me dêem crédito quando distribuirem o programa ou utilizarem trechos do código, obrigado.
Bom, o único jeito de persistir o horário em um sistema é havendo um firmware para isso. A BIOS do PC contém um relógio que se mantém funcionando através da sua bateria mesmo quando o computador é desligado.
É possível, entretanto, obter a hora online conectando-se a um servidor de horas. Com o Locale configurado adequadamente é possível obter a hora de acordo com o fuso horário do usuário.
Ainda, se o programa for um applet, pode-se obter a hora do servidor que hospeda a página ao invés de obtê-la do computador do usuário, mas nesse caso não seria considerado o fuso horário, e o sucesso depende das permissões de acesso do servidor.
Eu vou elaborar o tutorial e quando estiver pronto vejo como postá-lo no GUJ.
Ai cara, muito legal o que vc fez.
E eu to desenvolvendo uma aplicação no netbean 6.1 e não tenho muita esperiencia.
Será que vc ou outra pessoa poderia me informar como eu uso esse .jar em minha aplicação?
Valeu.
[quote=Giliard.Lourenço]Ai cara, muito legal o que vc fez.
E eu to desenvolvendo uma aplicação no netbean 6.1 e não tenho muita esperiencia.
Será que vc ou outra pessoa poderia me informar como eu uso esse .jar em minha aplicação?
Valeu.[/quote]
O .jar do relógio?
Vc pode pegar os fontes e jogar as classes referentes ao relógio na sua app, basicamente vc precisa ter uma instância do relógio, que é um Sprite (extends Sprite), o que quer dizer que vc precisa da classe Relogio, da classe Sprite e da classe com as constantes com parâmetros para o relógio, então precisa haver uma Thread que vai ficar chamando os métodos update() e paint(g2) do relógio no intervalo que vc quiser (a cada 500 ms, por exemplo, quanto menor o intervalo mais suave a trajetória do ponteiro de segundos). Veja que o paint(g2) precisa receber uma instância de Graphics2D que você vai pegar provavelmente do JPanel onde você tiver adicionado o relógio…
Como faz algum tempo que fiz esse programa não lembro dos detalhes, mas em linhas gerais é isso…
Por gentileza, faça uma referência a Cláudio Loureiro no seu código onde você colocar as classes do relógio!
Se vc quiser pode colocar as classes do Sprite, Relogio e constantes em um .jar diferente e deixá-lo no classpath da sua aplicação, ou simplesmente criar o jar da sua aplicação já com as classes do relógio dentro…!
Ah, apenas lembrando: entre uma chamada a paint e outra você precisa limpar o seu Graphics2D… você pode fazer isso chamando:
g2.setColor(Color.BLACK);
g2.fillRect(posX, posY, largura, altura);
Se você não fizer isso os redesenhos do relógio serão sobrepostos, criando uma bagunça na tela, hehehe…
E não se preocupe em deixar a thread fazer várias chamadas a update() e paint(g2), o relógio roda a pelo menos 60 fps (60 frames, ou redesenhos, por segundo), a menos que você tenha feito algo errado com o JPanel da sua aplicação…
Funcionou muito bem. Coloquei no eclipse e dei uma “ajeitada” e fiz rodar também, mas agora não estou conseguindo implementar na minha aplicação. Alguma ajuda?