Agenda com Jcalendar

Olá, estou criando uma Agenda na “unha” e preciso de ajuda.

Ver imagem:

Preciso de fazer o seguinte:
1º selecionar a data no jcalendar - imagem 1 (qual o evento utilizado?)
2º inserir uma atividade no jtable (falta redimensiona-lo) - imagem 2
3º inserir uma tarefa no jtable - imagem 3 e ao clicar no checkbox deixar a linha selecionada (cor destaque) como tarefa realizada.

Para isso criei uma classe entidade chamada agenda…

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package sgco;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

/**
*

  • @author Victor
    */
    @Entity
    @Table(name = “agenda”)
    @XmlRootElement
    @NamedQueries({
    @NamedQuery(name = “Agenda.findAll”, query = “SELECT a FROM Agenda a”),
    @NamedQuery(name = “Agenda.findByCdagenda”, query = “SELECT a FROM Agenda a WHERE a.cdagenda = :cdagenda”),
    @NamedQuery(name = “Agenda.findByDia”, query = “SELECT a FROM Agenda a WHERE a.dia = :dia”),
    @NamedQuery(name = “Agenda.findByMes”, query = “SELECT a FROM Agenda a WHERE a.mes = :mes”),
    @NamedQuery(name = “Agenda.findByAno”, query = “SELECT a FROM Agenda a WHERE a.ano = :ano”),
    @NamedQuery(name = “Agenda.findByHorario”, query = “SELECT a FROM Agenda a WHERE a.horario = :horario”),
    @NamedQuery(name = “Agenda.findByAtividade”, query = “SELECT a FROM Agenda a WHERE a.atividade = :atividade”),
    @NamedQuery(name = “Agenda.findByStatustarefa”, query = “SELECT a FROM Agenda a WHERE a.statustarefa = :statustarefa”),
    @NamedQuery(name = “Agenda.findByTareda”, query = “SELECT a FROM Agenda a WHERE a.tareda = :tareda”)})
    public class Agenda implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = “cdagenda”)
    private Integer cdagenda;
    @Basic(optional = false)
    @Column(name = “dia”)
    private String dia;
    @Basic(optional = false)
    @Column(name = “mes”)
    private String mes;
    @Basic(optional = false)
    @Column(name = “ano”)
    private String ano;
    @Basic(optional = false)
    @Column(name = “horario”)
    private String horario;
    @Basic(optional = false)
    @Column(name = “atividade”)
    private String atividade;
    @Basic(optional = false)
    @Column(name = “statustarefa”)
    private String statustarefa;
    @Basic(optional = false)
    @Column(name = “tareda”)
    private String tareda;

    public Agenda() {
    }

    public Agenda(Integer cdagenda) {
    this.cdagenda = cdagenda;
    }

    public Agenda(Integer cdagenda, String dia, String mes, String ano, String horario, String atividade, String statustarefa, String tareda) {
    this.cdagenda = cdagenda;
    this.dia = dia;
    this.mes = mes;
    this.ano = ano;
    this.horario = horario;
    this.atividade = atividade;
    this.statustarefa = statustarefa;
    this.tareda = tareda;
    }

    public Integer getCdagenda() {
    return cdagenda;
    }

    public void setCdagenda(Integer cdagenda) {
    this.cdagenda = cdagenda;
    }

    public String getDia() {
    return dia;
    }

    public void setDia(String dia) {
    this.dia = dia;
    }

    public String getMes() {
    return mes;
    }

    public void setMes(String mes) {
    this.mes = mes;
    }

    public String getAno() {
    return ano;
    }

    public void setAno(String ano) {
    this.ano = ano;
    }

    public String getHorario() {
    return horario;
    }

    public void setHorario(String horario) {
    this.horario = horario;
    }

    public String getAtividade() {
    return atividade;
    }

    public void setAtividade(String atividade) {
    this.atividade = atividade;
    }

    public String getStatustarefa() {
    return statustarefa;
    }

    public void setStatustarefa(String statustarefa) {
    this.statustarefa = statustarefa;
    }

    public String getTareda() {
    return tareda;
    }

    public void setTareda(String tareda) {
    this.tareda = tareda;
    }

    @Override
    public int hashCode() {
    int hash = 0;
    hash += (cdagenda != null ? cdagenda.hashCode() : 0);
    return hash;
    }

    @Override
    public boolean equals(Object object) {
    // TODO: Warning - this method won’t work in the case the id fields are not set
    if (!(object instanceof Agenda)) {
    return false;
    }
    Agenda other = (Agenda) object;
    if ((this.cdagenda == null && other.cdagenda != null) || (this.cdagenda != null && !this.cdagenda.equals(other.cdagenda))) {
    return false;
    }
    return true;
    }

    @Override
    public String toString() {
    return “sgco.Agenda[ cdagenda=” + cdagenda + " ]";
    }

}
[/code]

O Código da agenda é este:

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

/*

  • Menu_Principal.java
  • Created on 04/05/2011, 09:23:46
    */
    package sgco;

import javax.swing.JFrame;

/**
*

  • @author Victor
    */
    public class Menu_Principal extends javax.swing.JFrame {

    /** Creates new form Menu_Principal */
    public Menu_Principal() {
    initComponents();

    }

    /** This method is called from within the constructor to

    • initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is

    • always regenerated by the Form Editor.
      */
      @SuppressWarnings(“unchecked”)
      //
      private void initComponents() {

      activityAShapeBean1 = new com.miginfocom.beans.ActivityAShapeBean();
      activityAShapeBean2 = new com.miginfocom.beans.ActivityAShapeBean();
      jScrollPane2 = new javax.swing.JScrollPane();
      jTable2 = new javax.swing.JTable();
      jPanel1 = new javax.swing.JPanel();
      jScrollPane1 = new javax.swing.JScrollPane();
      Tabela_Horario = new javax.swing.JTable();
      jPanel2 = new javax.swing.JPanel();
      jCalendar1 = new com.toedter.calendar.JCalendar();
      jPanel3 = new javax.swing.JPanel();
      jScrollPane3 = new javax.swing.JScrollPane();
      jTable3 = new javax.swing.JTable();
      jMenuBar1 = new javax.swing.JMenuBar();
      jMenu1 = new javax.swing.JMenu();
      jMenuItem1 = new javax.swing.JMenuItem();
      jMenuItem2 = new javax.swing.JMenuItem();
      jMenu2 = new javax.swing.JMenu();
      jMenu3 = new javax.swing.JMenu();

      jTable2.setModel(new javax.swing.table.DefaultTableModel(
      new Object [][] {
      {null, null, null, null},
      {null, null, null, null},
      {null, null, null, null},
      {null, null, null, null}
      },
      new String [] {
      “Title 1”, “Title 2”, “Title 3”, “Title 4”
      }
      ));
      jScrollPane2.setViewportView(jTable2);

      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      setTitle(“Sistema de Gerenciamento de Consultório Odontológico”);
      setBackground(new java.awt.Color(255, 255, 255));

      jPanel1.setBackground(new java.awt.Color(255, 255, 255));
      jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(""));

      javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
      jPanel1.setLayout(jPanel1Layout);
      jPanel1Layout.setHorizontalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGap(0, 946, Short.MAX_VALUE)
      );
      jPanel1Layout.setVerticalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGap(0, 61, Short.MAX_VALUE)
      );

      Tabela_Horario.setModel(new javax.swing.table.DefaultTableModel(
      new Object [][] {
      {“00:00”, null},
      {“01:00”, “”},
      {“02:00”, null},
      {“03:00”, null},
      {“04:00”, null},
      {“05:00”, null},
      {“06:00”, null},
      {“07:00”, null},
      {“08:00”, null},
      {“09:00”, null},
      {“10:00”, null},
      {“11:00”, null},
      {“12:00”, null},
      {“13:00”, null},
      {“14:00”, null},
      {“15:00”, null},
      {“16:00”, null},
      {“17:00”, null},
      {“18:00”, null},
      {“19:00”, null},
      {“20:00”, null},
      {“21:00”, null},
      {“22:00”, null},
      {“23:00”, null}
      },
      new String [] {
      “Horário”, “Atividade”
      }
      ) {
      boolean[] canEdit = new boolean [] {
      false, true
      };

       public boolean isCellEditable(int rowIndex, int columnIndex) {
           return canEdit [columnIndex];
       }
      

      });
      Tabela_Horario.setName(“Tabela_Horario”); // NOI18N
      jScrollPane1.setViewportView(Tabela_Horario);

      jPanel2.setBackground(new java.awt.Color(255, 255, 255));
      jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(""));

      jCalendar1.setBackground(new java.awt.Color(255, 255, 255));
      jCalendar1.addKeyListener(new java.awt.event.KeyAdapter() {
      public void keyPressed(java.awt.event.KeyEvent evt) {
      jCalendar1KeyPressed(evt);
      }
      });

      javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
      jPanel2.setLayout(jPanel2Layout);
      jPanel2Layout.setHorizontalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(jCalendar1, javax.swing.GroupLayout.DEFAULT_SIZE, 230, Short.MAX_VALUE)
      );
      jPanel2Layout.setVerticalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(jPanel2Layout.createSequentialGroup()
      .addComponent(jCalendar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addContainerGap(246, Short.MAX_VALUE))
      );

      jPanel3.setBackground(new java.awt.Color(255, 255, 255));
      jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(""));

      jTable3.setModel(new javax.swing.table.DefaultTableModel(
      new Object [][] {
      {null, null},
      {null, null},
      {null, null}
      },
      new String [] {
      “Tarefas”, “”
      }
      ) {
      Class[] types = new Class [] {
      java.lang.Boolean.class, java.lang.Object.class
      };

       public Class getColumnClass(int columnIndex) {
           return types [columnIndex];
       }
      

      });
      jScrollPane3.setViewportView(jTable3);

      javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
      jPanel3.setLayout(jPanel3Layout);
      jPanel3Layout.setHorizontalGroup(
      jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 946, Short.MAX_VALUE)
      );
      jPanel3Layout.setVerticalGroup(
      jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(jPanel3Layout.createSequentialGroup()
      .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      );

      jMenu1.setText(“Cadastros”);

      jMenuItem1.setText(“Convênio”);
      jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      jMenuItem1ActionPerformed(evt);
      }
      });
      jMenu1.add(jMenuItem1);

      jMenuItem2.setText(“Paciente”);
      jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      jMenuItem2ActionPerformed(evt);
      }
      });
      jMenu1.add(jMenuItem2);

      jMenuBar1.add(jMenu1);

      jMenu2.setText(“Controles”);
      jMenuBar1.add(jMenu2);

      jMenu3.setText(“Relatórios”);
      jMenuBar1.add(jMenu3);

      setJMenuBar(jMenuBar1);

      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
      getContentPane().setLayout(layout);
      layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      .addGroup(layout.createSequentialGroup()
      .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 700, Short.MAX_VALUE)
      .addContainerGap())
      .addComponent(jPanel3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      );
      layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
      .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 412, Short.MAX_VALUE)
      .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      );

      pack();
      }//

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
    JFrame frame_convenio = new JFrame();
    frame_convenio.setContentPane( new Cadastro_Convenio());
    frame_convenio.pack();
    frame_convenio.setVisible(true); // TODO add your handling code here:
    }

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
    JFrame frame_paciente = new JFrame();
    frame_paciente.setContentPane( new Cadastro_Paciente());
    frame_paciente.pack();
    frame_paciente.setVisible(true);

      // TODO add your handling code here:
    

    }

    private void jCalendar1KeyPressed(java.awt.event.KeyEvent evt) {
    // TODO add your handling code here:
    }

    /**

    • @param args the command line arguments
      */
      public static void main(String args[]) {
      java.awt.EventQueue.invokeLater(new Runnable() {

       @Override
       public void run() {
           new Menu_Principal().setVisible(true);
          
      
       }
      

      });
      }
      // Variables declaration - do not modify
      private javax.swing.JTable Tabela_Horario;
      private com.miginfocom.beans.ActivityAShapeBean activityAShapeBean1;
      private com.miginfocom.beans.ActivityAShapeBean activityAShapeBean2;
      private com.toedter.calendar.JCalendar jCalendar1;
      private javax.swing.JMenu jMenu1;
      private javax.swing.JMenu jMenu2;
      private javax.swing.JMenu jMenu3;
      private javax.swing.JMenuBar jMenuBar1;
      private javax.swing.JMenuItem jMenuItem1;
      private javax.swing.JMenuItem jMenuItem2;
      private javax.swing.JPanel jPanel1;
      private javax.swing.JPanel jPanel2;
      private javax.swing.JPanel jPanel3;
      private javax.swing.JScrollPane jScrollPane1;
      private javax.swing.JScrollPane jScrollPane2;
      private javax.swing.JScrollPane jScrollPane3;
      private javax.swing.JTable jTable2;
      private javax.swing.JTable jTable3;
      // End of variables declaration
      }
      [/code]

O que eu gostaria de saber é o seguinte, como faço para capturar os dados do calendário (jcalendar) das tabelas e inserir no banco através da classe de entidade “agenda”, preciso de fazer isto até sábado, estou aprendendo Java ainda…
Qualquer coisa deixo meu e-mail, msn e skype se por acaso aparecer um bom samaritano disposto a dar um suporte.
e-mail/msn: victor_vasconcelos3@hotmail.com
skype: victor.vasconcelos.moreira

Muito obrigado!!