Componente visual de calendário swing aqui

como fazer para jogar a data selecionada para outro campo?

POr exemplo:

– combo calendario
– JTextField Datanascimento

Agora pegar a data do combo e jogar na DataNascimento

Muito bom este componente!

Estava tentando colocar spinner para hora e minuto nele para ficar tipo o do richfaces, conseguiu colocar, configurar o formato mas quando clico nos botoes do spinner ele se comporta como um dia qualquer, creio que estou colocando no lugar errado os spinner. :oops:
Você tem um exemplo com horario? ou saberia o por que deste comportamento?
Eu adicionei os spinners a um panel e o coloquei dentro do weekAndDaysPanel.

Obrigada

Muito Bom!!!
Vou usar no meu projeto!
Mas tenho um comentário
O dia atual fica sempre destacado independente do mês e ano que se coloque
acho uma boa ideia destacar o dia atual mas só se o mês e o ano forem o atual
Agora estou meio com pressa desenvolvendo esse projeto mas assim que eu achar tempo tentarei modificar isso mas vai a dica para as próximas versões XD

Parabéns pelo trabalho!! procurei bastante isso na net e esse foi o mais bonito e eficiente que achei!
até!

Edit:
o teu componente gera um erro quando se chama o construtor com o parâmetro showActualDate como false
abaixo o mensagem de erro exibida pelo eclipse

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 2 at java.lang.String.substring(Unknown Source) at geral.CalendarComboBox.getSelectedItem(CalendarComboBox.java:657) at javax.swing.plaf.basic.BasicComboBoxUI.configureEditor(Unknown Source) at com.sun.java.swing.plaf.windows.WindowsComboBoxUI.configureEditor(Unknown Source) at javax.swing.plaf.basic.BasicComboBoxUI.addEditor(Unknown Source) at javax.swing.plaf.basic.BasicComboBoxUI$Handler.propertyChange(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source) at java.awt.Component.firePropertyChange(Unknown Source) at javax.swing.JComponent.firePropertyChange(Unknown Source) at javax.swing.JComboBox.setEditable(Unknown Source) at geral.CalendarComboBox.<init>(CalendarComboBox.java:83) at venda.vale.Filtro.getComponentes(Filtro.java:53) at venda.vale.Filtro.inicializa(Filtro.java:30) at venda.vale.Filtro.<init>(Filtro.java:26) at venda.vale.Ver.getPFilter(Ver.java:62) at venda.vale.Ver.inicia(Ver.java:56) at venda.vale.Ver.<init>(Ver.java:49) at venda.Teste.main(Teste.java:28)

Depois te muito tempo vendo essa tranqueias todas , resolvi mostra algo de verdade!

QOOXDOO, isso sim vai revolucionar o web

Parabéns companheiro… Muito bom

Nunca é demais dizer: Parabens!
Era exatamente o que eu precisava! Muito bom!

Depois de um tempo, atualizei corrigindo os problemas que postaram aqui, estou postando uma nova versão (27/08/11).
Os construtores estão ok, e testei nos cinco L&F (Windows, Metal, Nimbus, Gtk e Motif), basta analisar o projeto como exemplo. :wink:

Utilizei o NetBeans 7.0.1 com o JDK 7.0.

Veio,

Ta dando um erro aqui em um import, segue o trecho…

import javax.swing.plaf.synth.SynthComboBoxUI;

Dá o seguinte erro: Cannot be accessed from outside packege…

Por que deu esse erro???

To precisando disso com urgência!!!

Vlw,
Maurijava

Ah!

Antes que eu me esqueça…

Estou usando JDK 6, será que é isso???

No aguardo,

Maurijava

[quote=maurijava]Ah!

Antes que eu me esqueça…

Estou usando JDK 6, será que é isso???

No aguardo,

Maurijava[/quote]
É, esta classe existe só na versão 7. Para a 6 e anteriores use a classe (que usa a classe BasicComboBoxUI) que anexei.

[quote=antonioni.rocha]Resolvi fazer um aqui que serve às minhas necessidades.
Pra quem se interessar, está anexo o projeto do NetBeans. :slight_smile:

Utilizei o NetBeans 7.0.1 com o JDK 7.0.


[/quote]
Granda exemplo. Thank u

Muito bom o seu aplicativo.

só tem um bug nesse componente:
quando o usuario digita o ano incompleto, por ex: 24/12/201_ e tira o foco do componente, ele lança um null pointer exception.

[quote=mateusviccari]só tem um bug nesse componente:
quando o usuario digita o ano incompleto, por ex: 24/12/201_ e tira o foco do componente, ele lança um null pointer exception.[/quote]
Verdade, está corrigido, veja no download do primeiro post…

Tomei liberdade de modificar um pouco o componente, adicionei 2 métodos pra setar e pegar direto objetos do tipo Date, ficando bem mais pratico pra quem trabalha com java beans e persistencia.
Os métodos são getDate() e setDate(Date date).
Segue em anexo.

Oi pessoal,

sou novo em Java e fiquei com uma duvida sobre esse calendario… seguinte… o calendario só aparece quando eu clico no combobox…como eu faço para o calendario já iniciar aberto… tipo…em vez de ter que clicar no combobox para ele abrir… ele já fique aberto na tela…

grato pela atenção

Amigos como eu faço para inserir a data
usando o método setSelectedItem
Obs. estou usando o exemplo.

String data = "21/12/2012";
ccb.setSelectedItem(data);

Obrigado!

[quote=carvalhoromulo]Amigos como eu faço para inserir a data
usando o método setSelectedItem
Obs. estou usando o exemplo.

String data = "21/12/2012";
ccb.setSelectedItem(data);

Obrigado![/quote]

Date d = new SimpleDateFormat("dd/MM/yyyy").parse("21/12/2012");
ccb.setSelectedItem(d);

Obrigado pela ajuda, mateusviccari
porém ainda não obtive sucesso.

tentei fazer da seguinte forma:

try {
            Date d = null; 
            String data = "21/12/2012";
            d = new SimpleDateFormat("dd/MM/yyyy").parse(data);
            JOptionPane.showMessageDialog(null,"a data é "+d);
            ccb.setSelectedItem(d);
        } catch (ParseException ex) {
            Logger.getLogger(FrameTeste.class.getName()).log(Level.SEVERE, null, ex);
        }

estou recebendo o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: invalid date
	at comp.JCalendar.setSelectedItem(JCalendar.java:671)

O setSelectedItem faz a seguinte validação:

@Override
  public void setSelectedItem(Object anObject) {
    if (anObject != null) {
      if (anObject instanceof GregorianCalendar) {
        //JOptionPane.showMessageDialog(null,"Entrei no Laço Gregorian Calendar : "+anObject);  
        String dayText = String.valueOf(((GregorianCalendar) anObject).get(Calendar.DAY_OF_MONTH));
        String monthText = String.valueOf(((GregorianCalendar) anObject).get(Calendar.MONTH));
        String yearText = String.valueOf(((GregorianCalendar) anObject).get(Calendar.YEAR));
        formattedTextField.setValue(dayText + "/" + monthText + "/" + yearText);
      } else {
        //JOptionPane.showMessageDialog(null,"Entrei no Laço do Gregorian Calendar: "+anObject);
        super.setSelectedItem(null);
        throw new IllegalArgumentException("invalid date");
      }
    } else {
      if (showActualDate) {
        formattedTextField.setValue(getTime());
      } else {
        formattedTextField.setValue("");
      }
    }

    super.setSelectedItem(null);
  }

ops desculpe, é que o componente que eu uso aqui mechi um pouco pra trabalhar com objetos do tipo Date, já esse que voce esta usando nao aceita, então voce teria que passar um objeto do tipo GregorianCalendar no metodo setSelectedItem, então voce tem que fazer assim:

            Date d = null;   
            String data = "21/12/2012";  
            d = new SimpleDateFormat("dd/MM/yyyy").parse(data);  
            JOptionPane.showMessageDialog(null,"a data é "+d);  
      
            GregorianCalendar gc=new GregorianCalendar();
            gc.setTime(d);
            ccb.setSelectedItem(gc);