Bom dia amigos
Eu tenho um exercício para fazer e estou encontrando algumas dificuldades. É o seguinte, a pessoa vai digitar uma data em um JTextField e eu tenho que mostrar qual é o dia do ano em um JLabel. Por exemplo, eu digito 31/05/2012 e no JLabel aparece: Este é o dia 152 do ano.
Aqui está o código:
import java.awt.*;
import javax.swing.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Calendar;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
public class exercicio04 extends JFrame {
JTextField data;
JTextArea numero;
String texto;
Calendar calendario;
public exercicio04 () {
setTitle ("Exercício 04");
setSize (300, 300);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
setVisible (true);
setLayout (new GridLayout (2, 1));
data = new JTextField (10);
numero = new JTextArea (10, 10);
add (data);
add (numero);
data.addKeyListener (new KeyAdapter () {
public void keyReleased (KeyEvent ev) {
texto = data.getText (); //Pego a data
Date date = java.sql.Date.valueOf (texto); //Converto de String para Date
calendario.setTime (date); //Passo para um Calendar
calendario.get (Calendar.DAY_OF_YEAR); //Descubro o dia do ano
texto = String.valueOf (calendario); //E converto novamente para String
numero.insert (texto, 0);
}
});
}
public static void main (String args []) {
exercicio04 janela = new exercicio04 ();
}
}
Não está funcionando, alguém sabe me informar onde está o problema ou de que jeito eu posso fazer? Porque pelo que eu entendi, eu teria que pegar a data depois que o usuário digitasse ela inteira, mas do jeito que eu estou fazendo o programa está pegando a data sempre que eu aperto alguma tecla do teclado. Certo?