calendário em java(urgente)

oi pessola estou precisando de um calendário que quando o usuário clicar no dia… ele monstra o compromisso do dia…
como eu faço isso…
eu desenvolvi uma agenda… que precisa deste calendário…

nem sei se ele tem algum calendário pronto.

Mas a lógica é vc pegar o data como uma chave para a tua pesquisa onde vc guarda os compromissos e o usuário, aí mostrar na tela.

Oi

Marcia, existem as classes Calendar e GregorianCalendar que serão as peças chaves pra fazer isso, mas agora, para mostrar compromisso, etc, etc, tu vai ter que fazer tudo na mão mesmo. :oops:

T+

serio pessoal… mas como eu faço isso…

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html

esse link talvez ajude um pouco!!!

boa sorte!!

[quote=“marciapaula”]oi pessola estou precisando de um calendário que quando o usuário clicar no dia… ele monstra o compromisso do dia…
como eu faço isso…
eu desenvolvi uma agenda… que precisa deste calendário…[/quote]

A tua aplicação é desktop ou web?

a minha aplicação e web…

Abaixo está o trecho de uma servlet abstrata que mostra um mês do calendário.

Ele é específico da minha aplicação, mas espero que lhe seja útil. Qualquer dúvida, esteja à vontade para perguntar.

    //
    // desmembra a data de hoje
    //
    GregorianCalendar cal = new GregorianCalendar();
    java.util.Date hoje = cal.getTime();
    int hoje_dia     = cal.get(Calendar.DATE);
    int hoje_mes     = cal.get(Calendar.MONTH) + 1;
    int hoje_ano     = cal.get(Calendar.YEAR);
    int agora_hora   = cal.get(Calendar.HOUR_OF_DAY);
    int agora_minuto = cal.get(Calendar.MINUTE);
    //
    // pega o ponteiro para a data a ser mostrada no painel de informações
    //
    String param;
    param = req.getParameter("dia");
    int dia = (param != null) ? Integer.parseInt(param) : hoje_dia;
    param = req.getParameter("mes");
    int mes = (param != null) ? Integer.parseInt(param) : hoje_mes;
    param = req.getParameter("ano");
    int ano = (param != null) ? Integer.parseInt(param) : hoje_ano;
    //
    // coloca o calendário no 1o. dia do mês mostrado
    //
    cal.set(ano, (mes - 1), 1);
    int maximo = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
    //
    // amarra o primeiro dia da semana
    //
    cal.setFirstDayOfWeek(Calendar.SUNDAY);
    cal.setMinimalDaysInFirstWeek(1);
    //
    // inicia a construção da página
    //
    setTemplate("agenda.html");
	synchronized (pagina)
    {
      pagina.setPlaceHolder("titulo", titulo);
      pagina.setPlaceHolder("ajuda", ajuda);
      pagina.setPlaceHolder("mensagem", mensagem);
      //
      // passa os parâmetros do dia selecionado
      //
      pagina.setPlaceHolder("dia", Util.strzero(dia, 2));
      pagina.setPlaceHolder("mes", Util.strzero(mes, 2));
      pagina.setPlaceHolder("ano", String.valueOf(ano));
      //
      // passa o índice do <SELECT name=hora>
      //
      agora_hora++;
      if(agora_hora == 24)
        agora_hora = 0;          // ajusta às idiossincrasias da lib
      int indice = agora_hora * 2;
      if(agora_minuto > 30)
        indice++;
      pagina.setPlaceHolder("hora", String.valueOf(indice));
      //
      // pega o nome da classe derivada (usado nos links dinâmicos)
      //
      pagina.setPlaceHolder("url", emitForm());
      //
      // constrói as células diárias do calendário
      //
      StringBuffer bloco = new StringBuffer();
      StringBuffer agenda = new StringBuffer();
      bloco.append("<TR HEIGHT=30 CLASS=cal>");
      int dd = -1;
      for(int i = 1; i <= maximo; i++)
      {
        boolean eh_hoje = (i == hoje_dia && mes == hoje_mes && ano == hoje_ano);
        java.util.Date data = cal.getTime();
        //
        //  deixa as casas antes do dia 1o. em branco
        //
        if(i == 1)
        {
          int dds = cal.get(Calendar.DAY_OF_WEEK);
          for(int j = 1; j < dds; j++)
            bloco.append("<TD>&nbsp;");
          dd = dds;
        }
        //
        // cria o link do dia
        //
        bloco.append("<TD ALIGN=center");
        if(i == dia)
        {
          // define o estilo da célula
          //
          bloco.append(" BGCOLOR=yellow");
          if(eh_hoje)
            bloco.append(" CLASS=hoje>");
          else
            bloco.append('>');
          //
          // formata os dados da agenda do dia
          //
          agenda.append("<B>Agenda do dia " + Util.strzero(dia, 2) + "-" +
                                              Util.strzero(mes, 2) + "-" +
                                              ano + ":</B><BR>");
          //
          // abre conexão com o sistema backend
          //
          Connection con = null;
          try
          {
            con = portal.dbpool.getConnection();
            //
            // implementa a estratégia do botão voltar
            //
            int transa = checaTransa();
            flowId = req.getParameter("flowId");
            pagina.setPlaceHolder("flowId", flowId);
            //
            // pega as informações digitadas pelo usuário
            //
            String hora = req.getParameter("hora");
            String info = req.getParameter("info");
            if(info != null)
            {
              // testa a sanidade da transação
              //
              if(transa > 0)
              {
                new Mensagem(this, "Transação inválida, diagnóstico:<BR>" +
                                  falhas[transa - 1]);
                return;
              }       
              //
              // salva as informações digitadas pelo usuário
              //
              insereNota(con, info, hora, data);
              //
              // atualiza o token do botão voltar
              //
              transTk = geraTransa(flowId);
            }
            else
              transTk = req.getParameter("transTk");
            pagina.setPlaceHolder("transTk", transTk);
            //
            // busca os agendamentos para o dia
            //
            PreparedStatement stmt2 = buscaNotas(con, data);
            ResultSet rs = stmt2.executeQuery();
            int n = 0;
            while(rs.next())
            {
              hora         = rs.getString(1);
              info         = rs.getString(2);
              int org      = rs.getInt(3);
              String conta = rs.getString(4);
              String admin = rs.getString(5);
              agenda.append("<TR><TD>[" + hora + "] Origem: <FONT COLOR=#");
              agenda.append(origens[org]);
              agenda.append("</FONT>");
              if(origem == VISITANTE)
              {
                agenda.append(",  enviada por <I>" + conta + "</I>");
                agenda.append(",  aprovada por <I>" + admin + "</I>");
              }
              agenda.append("<TR><TD>" + info);
              agenda.append("<TR><TD>&nbsp;\r\n");
              n++;
            }
            if(n == 0)
              agenda.append("-- Vazia --");
            stmt2.close();
          }
          catch(SQLException e)
          {
            throw new ServletException(e);
          }
          finally
          {
            con.close();
          }
        }
        else
        {
          if(eh_hoje)
            bloco.append(" CLASS=hoje>");
          else
            bloco.append('>');
        }
        //
        // gera o link para o dia
        //
        flowId = "agFlow" + Util.getNonce();
        transTk = geraTransa(flowId);
        bloco.append(
          emitLink("dia=" + i + "&mes=" + mes + "&ano=" + ano + "&flowId=" + flowId + "&transTk=" + URLEncoder.encode(transTk), String.valueOf(i), null));
        cal.add(Calendar.DAY_OF_MONTH, 1);
        dd++;
        if(dd == 8)
        {
          dd = 1;
          //
          // se não era o último dia, cria uma nova linha na tabela
          //
          if(i < maximo)
            bloco.append("<TR HEIGHT=30 CLASS=cal>");
        }
      }
      //
      // completa a última semana com casa vazias
      //
      if(dd > 1)
        for(; dd < 8; dd++)
          bloco.append("<TD>&nbsp;");
      //
      pagina.setPlaceHolder("bloco", bloco);
      pagina.setPlaceHolder("agenda", agenda);
      //
      // calcula o mês anterior
      //
      int _mes = mes;
      int _ano = ano;
      mes--;
      if(mes == 0)
      {
        mes = 12;
        ano--;
      }
      pagina.setPlaceHolder("mes1", String.valueOf(mes));
      pagina.setPlaceHolder("ano1", String.valueOf(ano));
      //
      // calcula o próximo mês
      //
      mes = _mes;
      ano = _ano;
      mes++;
      if(mes == 13)
      {
        mes = 1;
        ano++;
      }
      pagina.setPlaceHolder("mes2", String.valueOf(mes));
      pagina.setPlaceHolder("ano2", String.valueOf(ano));
      //
      // envia o código html
      //
      pagina.send();
    }

Em particular, ignore as linhas relativas às variáveis flowId e transTk, que não têm nada a ver com o calendário.