Calendario em JAVA

20 respostas
C

não sei se é possivel,por exemplo, em MySQL no navicat quando você clica no campo para inserir um dado
que é de formato date, ele aparece um calendario e você escolhe a data,

é possivel fazer isso em java, na hora que clica no JTextField aparecer um calendario para
eu escolher a data, se tiver como alguem pode me ajudar,

20 Respostas

Vini_Fernandes

Cara, procure por JCalendar!

thiagocg

Eu sempre uso um jar de um componente pronto chamado JCalendar. Se quiser posso te passar ele por email!

C

pode me mandar por e-mail, eu aceito

[email removido]

thiagocg

Enviado para o teu email!

[]'s

C

tem como coloca um codigo de exemplo, ou algum tutorias falando sobre esse JCalendar.

thiagocg

Cara é so colocar na sua pasta lib, declarar ele no classpath da aplicação e usar como qualquer outro componente swing.

Se não for isso, qual sua duvida exata?

C

a duvida seria como colocar ele para funcionar em um JTextField

ai o resto q eu qero eu me viro

thiagocg

O jcalendar é o componente completo, vc não coloca ele dentro do jtextfield.

C

vou te explicar entao, tem um programa pra imprimir recibo ai a data tem q ir no recibo, mas isso eu cadastro o recibo com nome da pessoa, a data, valor etc,

entao onde estou digitando a data, qeria colocar esse calendar, o q vc me sugeria?? pq como falei lah em cima, tava pensando em fazer tipo no navicat qdo vc clica no campo date aparece um calendario entendeu.

thiagocg

cara é como eu te falei, o jcalendar é um componente swing completo, vc coloca ele no seu jframe ou jdialog da mesma forma q vc coloca o jtextfield, jlabel ou qualquer outro componente swing.
O componente vai exibir o calendario para o usuario selecionar a data que deseja.

A unica coisa q vc precisa fazer é colocar o jar no seu projeto e declarar ele no classpath do seu projeto, nada diferente de qualquer outro jar q vc tenha adicionado a sua aplicação.

Espero ter ajudado.

[]'s

C

coloquei ele na minha tele jah,

agora o tipo ele começa a semana na segunda-feira, teria como colocar pra começar domingo???

e outra coisa tipo eu coloco ano, mes e dia, como dps eu faço para pegar esse informações???

Edit: jah ouviu fala do JDateChooser, axo q eh do JCalendar tbm, mesmo design do JCalendar, mas meu problema, eh pega as informações para jogar no banco de dados, e tentar colocar a semana pra começar no domingo.

Edit2:conseguiu pega a date com o getDate() e jah formatado, problema q pega a data de hoje e eu qero a data selecionada.

thiagocg

Para começar em algum dia especifico vc pode setar manualmente a data com setDate(dataDesejada).
A data do jcalendar vc pega atraves do getDate() e a data atual vc pode passar um new Date() onde vc precisa a data atual.

[]'s

C

olha, tipo assim, cadastro funcionario ai tem a data nascimento, qdo eu faço o getDate() ele pega o dia de hoje e naum pega a data selecionada no Calendar, e começa eu soh qeria q a semana começaca no domingo, aki ele tah seg-ter-qua-qui-sex-sab-dom

eu qero
dom-seg-ter-qua-qui-sex-sab

não sei se eh possivel,

entendeu agora o q eu desejo??

Metaleiro

CuRu10:
não sei se é possivel,por exemplo, em MySQL no navicat quando você clica no campo para inserir um dado
que é de formato date, ele aparece um calendario e você escolhe a data,

é possivel fazer isso em java, na hora que clica no JTextField aparecer um calendario para
eu escolher a data, se tiver como alguem pode me ajudar,

[color=darkblue] Usei o código a um tempo atrás é só usar “extends” : [/color]

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import com.SwingCalendar.CalendarEvent;
import com.SwingCalendar.CalendarListener;
import com.SwingCalendar.myCalendar;

public class DateLabel extends JPanel implements MouseListener {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 4802863238724616153L;
	
	private JDialog frameCalendario = null;
	private myCalendar data        = null;
	private JTextField txtData     = null;
	private SimpleDateFormat sdf   = null;
	private JButton btn 		   = null;
	private JLabel lbl             = null;
	
	public DateLabel(String name, boolean editable, int size){
		
		GregorianCalendar gc = new GregorianCalendar();
		sdf                  = new SimpleDateFormat("dd/MM/yyyy");
		frameCalendario      = new JDialog();
		
		lbl                  = new JLabel(name, JLabel.LEFT);
		txtData				 = new JTextField(size);
		txtData.setEditable(editable);
		txtData.setBackground(Color.WHITE);
		
		data                 = new myCalendar();
		data.setDate(gc.getTime());
		frameCalendario.getContentPane().add(data);
		
		data.addCalendarListener(new CalendarListener() {
			public void calendarChanged(CalendarEvent e) {
				txtData.setText(sdf.format(e.getDate()));
			}
		});
		
		data.addMouseListener(this);
		
		setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
		add(lbl);
		add(txtData);
		
		btn         = new JButton("...");
		btn.addActionListener(
				
				new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						
						if(!frameCalendario.isVisible() && !frameCalendario.isModal()){
						
							frameCalendario.setUndecorated(true);
							frameCalendario.setModal(true);
							frameCalendario.setLocationRelativeTo(btn);
							frameCalendario.pack();
							frameCalendario.setVisible(true);
						
						}else{
							frameCalendario.setEnabled(true);
							frameCalendario.show();
						}
						
					}
				}						
				
		);
		
		
		Dimension d = txtData.getSize();
		btn.setMargin(new Insets(0, 0, 0, 0));
		d.width = btn.getPreferredSize().width;
		btn.setPreferredSize(d);
		add(btn);
		
	}

	public void mousePressed(MouseEvent e) {
    }

    public void mouseReleased(MouseEvent e) {
    }

    public void mouseEntered(MouseEvent e) {
    }

    public void mouseExited(MouseEvent e) {
    }

    public void mouseClicked(MouseEvent e) {
    	frameCalendario.setVisible(false);
    	System.out.println("Visible == true");
    }

	
	public String getText(){
		return txtData.getText();
	}
	
	public static void main(String[] args) {
		JFrame frame = new JFrame("Calendário");

		frame.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});

		myDateAndLabel hc = new myDateAndLabel("Data", true, 10);
		frame.getContentPane().add(hc);
		frame.pack();


		frame.setVisible(true);
	}
	
}
C

tem q usar algum JAR, pq aki eh soh tenho o JCalendar, e

import com.msantunes.SwingCalendar.CalendarEvent;

import com.msantunes.SwingCalendar.CalendarListener;

import com.msantunes.SwingCalendar.myCalendar;

esses 3 import não reconhece e o projeto jah esta adicionado
o JCalendar.

axo q precisa de alguma outra coisa.

Metaleiro

[color=darkblue] É realmente tem outras partes, peço desculpas[/color]

C

se tiver como me falar o q eh preciso

se temn q add algum jar

agradeço desde já

G

ow

tem como mandar pra mim tambem o jCalendar, ou dizer um link q posso baixar

obrigado !!!

G

ola

tem como mandar pra mim tambem, ou dizer um link q posso baixar

obrigado

W

Salve galera

Desenvolvi um calendário, pois também achei dificuldade em encontrar um para minha aplicação.

ele tem 700 linha, e é um uma única classe (facilita a implementação)

Espero que gostem

Até mais

Wall

Criado 15 de julho de 2009
Ultima resposta 5 de jan. de 2010
Respostas 20
Participantes 6