TextField com a hora do sistema[RESOLVIDO]

10 respostas
DANIEL35
Olá amigos, preciso pegar a hora do sistema operacional e passar para TextField. Como seria esse método? Alguém com boa vontade, poderia me ajudar, por favor? Vejam o código:
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPanel;
import java.awt.GridLayout;
import javax.swing.JFrame;

public class Campos extends Frame{
	public JLabel l1, l2, l3, l4, l5;
	public JTextField c1, c2, c3, c4, c5;
	
	public Campos(){
		l1 = new JLabel("nome");
		l2 = new JLabel("endereço");
		l3 = new JLabel("telefone");
		l4 = new JLabel("hora");    // hora do sistema
		l5 = new JLabel("bairro");
		c1 = new JTextField(15);
		c2 = new JTextField(15);
		c3 = new JTextField(15);
		c4 = new JTextField(15);
		c5 = new JTextField(15);
		
		add(l1);
		add(c1);
		add(l2);
		add(c2);
		add(l3);
		add(c3);
		add(l4);
		add(c4);
		add(l5);
		add(c5);
		setLayout(new GridLayout(0,2,0,6));
		setVisible(true);
		setSize(360, 400);

	}
	static void main(String [] args){
		new Campos();
	}
	
}

10 Respostas

leonardom

Tenta isso:

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss");

seuTextField.setText(sdf.format(Calendar.getInstance().getTime()));
DANIEL35
Veja como eu fiz:
import java.awt.*;
import javax.swing.*;

public class Campos extends Frame{
	public JLabel l1, l2, l3, l4, l5;
	public JTextField c1, c2, c3, c4, c5;
	
	public Campos(){
		l1 = new JLabel("nome");
		l2 = new JLabel("endereço");
		l3 = new JLabel("telefone");
        l4 = new JLabel("hora");
		SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss"); 
		   
		l5 = new JLabel("bairro");
		c1 = new JTextField(15);
		c2 = new JTextField(15);
		c3 = new JTextField(15);
	    c4.setText(sdf.format(Calendar.getInstance().getTime())); 
		c5 = new JTextField(15);
		
		add(l1);
		add(c1);
		add(l2);
		add(c2);
		add(l3);
		add(c3);
		add(l4);
		add(c4);
		add(l5);
		add(c5);
		setLayout(new GridLayout(0,2,0,6));
		setVisible(true);
		setSize(360, 400);

	}
	static void main(String [] args){
		new Campos();
	}
	
}
Ma está dando erros: cannot find symbol class SimpleDateFormat cannot find symbol variable Calendar
faelbsr

Acho que você tem que se você der um ‘import’ para simpledateformat deve funcionar

faelbsr

Pesquisei um pouco aqui e achei… tente dar este importe ai

import java.text.SimpleDateFormat; falou

DANIEL35

Obrigado pela atenção, vou dar esse import, e já posto a resposta.

DANIEL35
Correto, funcionou. Obrigado. Veja como ficou o código funcionando:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.FlowLayout;
import java.text.SimpleDateFormat;
import java.util.Calendar;

class HoraData extends JFrame{
	private JLabel l1, l2;
	private JTextField c1, c2;
	
	HoraData(){
	setTitle("PPI");
	l1 = new JLabel ("HORA");
	l2 = new JLabel ("DATA");
	c1 = new JTextField(8);
	c2 = new JTextField(8);	
	SimpleDateFormat hora = new SimpleDateFormat("HH:mm:aa"); 
	SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy"); 

	getContentPane().setLayout(new FlowLayout());
	add(l1);
	c1.setText(hora.format(Calendar.getInstance().getTime())); 
	add(c1);
	add(l2);
	c2.setText(data.format(Calendar.getInstance().getTime())); 
	add(c2);
	
	setVisible(true);
	setSize(350, 250);
	setLocationRelativeTo(null); 
   }
public static void main(String[] args){
	new HoraData();
 }
}
leonardom

Legal que funcionou Daniel.
Somente uma sugestão, procure dar nomes signficados a suas variáveis, isso facilita a leitura do código. Tipo ao invés de chamar suas labels de l1 e l2, poderia ser horaLabel e dataLabel. O mesmo com seus TextFields, ao invés de c1 e c2, poderia ser horaField e dataField.

Abraço,

Leo

DANIEL35

Obrigado, vou usar.

R
DANIEL35:
Correto, funcionou. Obrigado. Veja como ficou o código funcionando:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.FlowLayout;
import java.text.SimpleDateFormat;
import java.util.Calendar;

class HoraData extends JFrame{
	private JLabel l1, l2;
	private JTextField c1, c2;
	
	HoraData(){
	setTitle("PPI");
	l1 = new JLabel ("HORA");
	l2 = new JLabel ("DATA");
	c1 = new JTextField(8);
	c2 = new JTextField(8);	
	SimpleDateFormat hora = new SimpleDateFormat("HH:mm:aa"); 
	SimpleDateFormat data = new SimpleDateFormat("dd/MM/yyyy"); 

	getContentPane().setLayout(new FlowLayout());
	add(l1);
	c1.setText(hora.format(Calendar.getInstance().getTime())); 
	add(c1);
	add(l2);
	c2.setText(data.format(Calendar.getInstance().getTime())); 
	add(c2);
	
	setVisible(true);
	setSize(350, 250);
	setLocationRelativeTo(null); 
   }
public static void main(String[] args){
	new HoraData();
 }
}

estou testando este código e a data continua estática, não sei como dizem que funcionou...

tenho uma hora que mostra com o paint, mas estou achando que está gastando muito do computador.
o gasto do computador ou CPU fica em 50 por cento, isto não é bom... deve ser o repaint...
sendo um programa secundário não posso usar o repaint... falo isso do programa despertador java...
[url]http://www.guj.com.br/java/262263-despertador-em-java/3#1377203[/url]

agradeço ajuda para mostrar hora, sem repaint, continuo buscando...
e cabe o alerta para o código que pode estar errado, mas dito como certo.

R

bem se interessar a alguém, neste tópico, achei uma resposta mais funcional…

http://www.guj.com.br/java/113444-como-colocar-um-relogio-no-sistema-resolvido

e estou aplicando ao despertador java

http://www.guj.com.br/java/262263-despertador-em-java/3#1377203 :roll: :roll: :roll: :shock: :shock:

Criado 7 de junho de 2010
Ultima resposta 26 de jan. de 2012
Respostas 10
Participantes 4