Bem Pessoal Hoje presciso do seguite problema!
Presciso que um Componente JLabel Receba Constante atualização referente a hora que é coleta apartir de uma metodo em outra classe,
qual o melhor jeito para realizar essa tarefa constantemente ?
Threads?
Agradeço desde Já.
Acredito que vc pode criar uma thread que possa ir modificando esse componente.
Parece Ser o Melhor jeito né?!
Tem alguma ideia , Sugere Algo?
Att
’[]
Fiz aqui rápidinho , qualquer coisa modifique para melhor o satisfazer.
public static void main(String[] args) {
SeuFrame seuFrm = new SeuFrame();
Thread atualiza = new Thread(new Clock(seuFrm.getLblTime()), "teste");
atualiza.start();
}
class Clock implements Runnable{
private Thread atual ;
private JLabel lbl ;
public Clock(JLabel lbl) {
this.lbl = lbl ;
atual = new Thread(this, "label");
}
@Override
public void run() {
// TODO Auto-generated method stub
SimpleDateFormat fmt = new SimpleDateFormat("HH:mm:ss");
while(true){
lbl.setText(fmt.format(new Date()));
try {
Thread.sleep(1000);
lbl.repaint();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Sendo ma
Eu acho melhor criar esta outra classe e implementar um listener nela.
Ai na sua classe principal onde tem o label, vc poderia colocar um evento no listener da classe que despara o evento de tempo em tempo.
Assim uma coisa não fica presa na outra, vou tentar codificar aqui hehe
Vou usar uma unica referência de listener (não um array) para simplificar a vida.
dai é só chamar o metodo dispara listener na sua classe quando tiver que alertar as outras aplicações
class DisparadorDeTempo
{
ActionListener listener;
DisparadorDeTempo(ActionListener listener)
{
this.listener = listener;
}
private void disparaListener(String texto)
{
listener.actionPerformed(new ActionEvent(texto, 0, "performed"));
}
}
Depois no seu principal ao instanciar o seu disparador é só vc criar o evento e setar o label.
DisparadorDeTempo disparadorDeTempo = new DisparadorDeTempo(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
label.setText(e.getSource.toString());
}
});
isso ai é para explicar o funcionamento dos listener.
O mais adequado é vc riar seu listener e o seu evento já com os tipos certos de construtor e tipos de variaveis.
Mas já é um começo.