Esse é o código da janela principal:
[code]package org.wellington.contaspagar.gui;
import java.awt.Container;
import java.awt.Dimension;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.List;
import java.util.Locale;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import org.wellington.contaspagar.controller.ContasPagarControle;
import org.wellington.contaspagar.modelo.Contaspagar;
public class ContasPagarUI extends javax.swing.JFrame{
private static final long serialVersionUID = 1L;
private JMenuBar menubar = new JMenuBar();
private JMenu menuArquivo = new JMenu (“Arquivo”);
private JMenu menuAjuda = new JMenu(“Ajuda”);
private ContasPagarControle cpc = null;
private javax.swing.JButton bTodas;
private javax.swing.JButton bQuitadas;
private javax.swing.JButton bEmAberto;
private javax.swing.JButton bAdicionar;
private javax.swing.JButton bQuitar;
private javax.swing.JButton bExcluir;
private javax.swing.JButton bPorPeriodo;
private javax.swing.JButton bFechar;
private javax.swing.JLabel lMensagem;
private javax.swing.JScrollPane spContas;
private javax.swing.JTable tContas;
public ContasPagarUI(){
initComponents();
this.montaMenu();
this.setSize(800, 410);
this.cpc = new ContasPagarControle();
locateOnScreen();
}
private void montaMenu(){
this.menubar.add(this.menuArquivo);
this.menubar.add(this.menuAjuda);
this.setJMenuBar(this.menubar);
}
@SuppressWarnings(“unchecked”)
private void initComponents(){
tContas = new javax.swing.JTable();
spContas = new javax.swing.JScrollPane(tContas);
bQuitadas = new javax.swing.JButton();
bEmAberto = new javax.swing.JButton();
bPorPeriodo = new javax.swing.JButton();
bTodas = new javax.swing.JButton();
lMensagem = new javax.swing.JLabel();
bAdicionar = new javax.swing.JButton();
bQuitar = new javax.swing.JButton();
bExcluir = new javax.swing.JButton();
bFechar = new javax.swing.JButton();
this.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
this.setTitle(“Controle de Contas a Pagar”);
this.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
bQuitadas.setText(“Quitadas”);
bEmAberto.setText(“Em Aberto”);
bPorPeriodo.setText(“Por Periodo”);
bTodas.setText(“Todas”);
bAdicionar.setText(“Adicionar”);
bQuitar.setText(“Quitar”);
bExcluir.setText(“Excluir”);
bFechar.setText(“Fechar”);
lMensagem.setFont(new java.awt.Font(“Arial”, 0, 18));
lMensagem.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
spContas.setBounds(5, 50, 630, 300);
tContas.setBounds(5, 50, 630, 300);
bTodas.setBounds(650, 80, 120, 25);
bQuitadas.setBounds(650, 110, 120, 25);
bEmAberto.setBounds(650, 140, 120, 25);
bPorPeriodo.setBounds(650, 170, 120, 25);
bAdicionar.setBounds(650, 200, 120, 25);
bQuitar.setBounds(650, 230, 120, 25);
bExcluir.setBounds(650, 260, 120, 25);
bFechar.setBounds(650, 290, 120, 25);
lMensagem.setBounds(5, 10, 630, 25);
Container cp = getContentPane();
cp.setLayout(null);
cp.add(spContas);
cp.add(tContas);
cp.add(bTodas);
cp.add(bQuitadas);
cp.add(bEmAberto);
cp.add(bPorPeriodo);
cp.add(bAdicionar);
cp.add(bQuitar);
cp.add(bExcluir);
cp.add(bFechar);
cp.add(lMensagem);
tContas.setModel(new javax.swing.table.DefaultTableModel(
new Object[][] {}, new String[] {"Código", "Descrição", "Cedente",
"Vencimento", "Valor", "Data Pag.", "Valor Pago" }){
private static final long serialVersionUID = 1L;
@SuppressWarnings("rawtypes")
Class[] types = new Class[]{
java.lang.String.class, java.lang.String.class,
java.lang.String.class, java.lang.String.class,
java.lang.String.class, java.lang.String.class,
java.lang.String.class};
boolean[] canEdit = new boolean[]{
false, false, false, false, false, false, false};
@SuppressWarnings("rawtypes")
public Class getColumnClass(int columnIndex){
return types[columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex){
return canEdit[columnIndex];
}
});
spContas.setViewportView(tContas);
bQuitadas.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
bQuitadasActionPerformed(evt);
}
});
bEmAberto.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
bEmAbertoActionPerformed(evt);
}
});
bPorPeriodo.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
bPorPeriodoActionPerformed(evt);
}
});
bTodas.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
bTodasActionPerformed(evt);
}
});
bAdicionar.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
bAdicionarActionPerformed(evt);
}
});
bQuitar.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
bQuitarActionPerformed(evt);
}
});
bExcluir.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
bExcluirActionPerformed(evt);
}
});
bFechar.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
bFecharActionPerformed(evt);
}
});
this.pack();
}
private void bTodasActionPerformed(java.awt.event.ActionEvent evt){
lMensagem.setText(“Exibindo contas Quitadas e Em Aberto”);
List<Contaspagar> contasPagarList = cpc.listarContas();
preencheJTable(contasPagarList);
}
private void bQuitadasActionPerformed(java.awt.event.ActionEvent evt){
lMensagem.setText(“Exibindo contas Quitadas”);
List<Contaspagar> contasPagarList = cpc.listarContasQuitadas();
preencheJTable(contasPagarList);
}
private void bEmAbertoActionPerformed(java.awt.event.ActionEvent evt) {
lMensagem.setText(“Exibindo Contas em Aberto”);
List<Contaspagar> contasPagarList = cpc.lstarContasEmAberto();
preencheJTable(contasPagarList);
}
private void bPorPeriodoActionPerformed(java.awt.event.ActionEvent evt){
try{
PeriodoUI periodoUI = new PeriodoUI();
if((periodoUI.getDataInicial() != null)
&& (periodoUI.getDataFinal() != null)){
lMensagem.setText("Exibindo contas com vencimento entre “
+periodoUI.getDataInicial() + " e”
+periodoUI.getDataFinal());
List<Contaspagar> contasPagarList =
cpc.listarContasPorPeriodo(periodoUI.getDataInicial(),
periodoUI.getDataFinal());
preencheJTable(contasPagarList);
}
}catch (Exception ex) {
System.out.println(ex);
}
}
private void bAdicionarActionPerformed(java.awt.event.ActionEvent evt){
try{
AdicionarContaPagarUI adicionarContaPagarUI =
new AdicionarContaPagarUI();
if((adicionarContaPagarUI.getDescricao() != null)
&& (adicionarContaPagarUI.getCedente() != null)
&& (adicionarContaPagarUI.getDvencimento() != null)
&& (adicionarContaPagarUI.getValor() != null)){
cpc.adicionar(adicionarContaPagarUI.getDescricao(),
adicionarContaPagarUI.getCedente(),
adicionarContaPagarUI.getDvencimento(),
adicionarContaPagarUI.getValor());
bEmAberto.doClick();
}
}catch (Exception ex) {
System.out.println(ex);
}
}
private void bExcluirActionPerformed(java.awt.event.ActionEvent evt){
try{
int retorno =
JOptionPane.showOptionDialog(null, “Deseja excluir a conta selecionada”
+"(" +tContas.getValueAt(tContas.getSelectedRow(), 1)
+")?", “Controle de ontas a Pagar”, JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null, null, null);
if(retorno == 0){
cpc.excluirConta((Long)
tContas.getValueAt(tContas.getSelectedRow(), 0));
bTodas.doClick();
}
}catch (Exception ex) {
System.out.println(ex);
}
}
private void bQuitarActionPerformed(java.awt.event.ActionEvent evt){
try{
if(tContas.getValueAt(tContas.getSelectedRow(), 5) == null){
QuitarContaPagarUI quitarContaPagarUI = new QuitarContaPagarUI(
tContas.getValueAt(tContas.getSelectedRow(), 0).toString(),
tContas.getValueAt(tContas.getSelectedRow(), 1).toString(),
tContas.getValueAt(tContas.getSelectedRow(), 2).toString(),
tContas.getValueAt(tContas.getSelectedRow(), 3).toString(),
tContas.getValueAt(tContas.getSelectedRow(), 4).toString());
if((quitarContaPagarUI.getDpagamento() != null)
&& (quitarContaPagarUI.getValorpagto() != null)){
cpc.atualizarConta(quitarContaPagarUI.getCodigo(),
quitarContaPagarUI.getDescricao(),
quitarContaPagarUI.getCedente(),
quitarContaPagarUI.getDvencimento(),
quitarContaPagarUI.getValor(),
quitarContaPagarUI.getDpagamento(),
quitarContaPagarUI.getValorpagto());
bQuitadas.doClick();
}
}else{
JOptionPane.showMessageDialog(null,
"A conta selecionada já foi quitada.");
}
}catch (Exception ex) {
System.out.println(ex);
}
}
private void bFecharActionPerformed(java.awt.event.ActionEvent evt){
System.exit(0);
}
private void preencheJTable(List listaDeContasPagar){
DecimalFormat df = new DecimalFormat("##0.00",
new DecimalFormatSymbols(Locale.US));
DefaultTableModel tm = (DefaultTableModel) tContas.getModel();
for(int i = (tm.getRowCount() - 1); i >= 0; --i ){
tm.removeRow(i);
}
for(int i = 0; i < listaDeContasPagar.size(); i++){
if(listaDeContasPagar.get(i).getDpagamento() != null){
tm.addRow(new Object[] {listaDeContasPagar.get(i).getCodigo(),
listaDeContasPagar.get(i).getDescricao(),
listaDeContasPagar.get(i).getCedente(),
DateFormat.getDateInstance().format(listaDeContasPagar.get(i)
.getDvencimento().getTime()),
df.format(listaDeContasPagar.get(i).getValor()),
DateFormat.getDateInstance().format(listaDeContasPagar.get(i)
.getDpagamento().getTime()),
df.format(listaDeContasPagar.get(i).getValorpagto())});
}else{
tm.addRow(new Object[] {listaDeContasPagar.get(i).getCodigo(),
listaDeContasPagar.get(i).getDescricao(),
listaDeContasPagar.get(i).getCedente(),
DateFormat.getDateInstance().format(listaDeContasPagar.get(i)
.getDvencimento().getTime()),
df.format(listaDeContasPagar.get(i).getValor()) });
}
}
}
private void locateOnScreen(){
final Dimension paneSize = this.getSize();
final Dimension screenSize = this.getToolkit().getScreenSize();
this.setLocation((screenSize.width - paneSize.width) / 2,
(screenSize.height - paneSize.height) / 2);
}
public static void main(String args[]){
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ContasPagarUI().setVisible(true);
}
});
}
} [/code]
Classe controle
[code]package org.wellington.contaspagar.controller;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.wellington.contaspagar.modelo.Contaspagar;
import org.wellington.contaspagar.repositorio.ContasPagarRepositorio;
public class ContasPagarControle {
private ContasPagarRepositorio contasPagarRepositorio = null;
public ContasPagarControle(){
this.contasPagarRepositorio =
new ContasPagarRepositorio();
}
public void adicionar(String descricao, String cedente,
String dataVencimento, double valor){
Contaspagar contaspagar = new Contaspagar();
contaspagar.setDescricao(descricao);
contaspagar.setCedente(cedente);
contaspagar.setValor(valor);
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date dVenc;
dVenc = sdf.parse(dataVencimento);
contaspagar.setDvencimento(dVenc);
} catch (ParseException e) {
e.printStackTrace();
}
contasPagarRepositorio.adicionarConta(contaspagar);
}
public void excluirConta(Long codigo){
contasPagarRepositorio.excluir(codigo);
}
public List<Contaspagar> lstarContasEmAberto(){
return contasPagarRepositorio.getContasEmAberto();
}
public List<Contaspagar> listarContasQuitadas(){
return contasPagarRepositorio.listarContasPagarQuitadas();
}
public List<Contaspagar> listarContasPorPeriodo(String dvencimento1,
String dvencimento2){
try{
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyy");
Date dVenc1 = sdf.parse(dvencimento1);
Date dVenc2 = sdf.parse(dvencimento2);
return contasPagarRepositorio.listarContasPagarPorPeriodo(dVenc1, dVenc2);
}catch(Exception ex){
System.out.println(ex);
}
return null;
}
public void atualizarConta(Long codigo, String descricao, String cedente,
String dvencimento, double valor, String dpagamento, double valorpagto){
try{
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date dVenc = sdf.parse(dvencimento);
Date dPagto = sdf.parse(dpagamento);
Contaspagar contaspagar = new Contaspagar();
contaspagar.setCodigo(codigo);
contaspagar.setDescricao(descricao);
contaspagar.setCedente(cedente);
contaspagar.setDvencimento(dVenc);
contaspagar.setValor(valor);
contaspagar.setDpagamento(dPagto);
contaspagar.setValorpagto(valorpagto);
contasPagarRepositorio.atualizar(contaspagar);
}catch (Exception ex) {
System.out.println(ex);
}
}
public List<Contaspagar> listarContas(){
return contasPagarRepositorio.listarContasPagar();
}
}
[/code]
classe repositorio referente as operações no banco
[code]package org.wellington.contaspagar.repositorio;
import java.util.Date;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.TemporalType;
import org.wellington.contaspagar.conexao.ConexaoDB;
import org.wellington.contaspagar.modelo.Contaspagar;
public class ContasPagarRepositorio {
EntityManagerFactory factory;
EntityManager em;
public ContasPagarRepositorio(){
this.factory = new ConexaoDB().getFactory();
this.em = factory.createEntityManager();
}
public void adicionarConta(Contaspagar contaspagar){
em.getTransaction().begin();
em.persist(contaspagar);
em.getTransaction().commit();
}
public void excluir(Long codigo){
Contaspagar contaspagar = em.find(Contaspagar.class, codigo);
em.getTransaction().begin();
em.remove(contaspagar);
em.getTransaction().commit();
}
@SuppressWarnings("unchecked")
public List<Contaspagar> getContasEmAberto(){
return em.createNamedQuery("Contaspagar.findEmAberto").getResultList();
}
@SuppressWarnings("unchecked")
public List<Contaspagar> listarContasPagarQuitadas(){
return em.createNamedQuery("Contaspagar.findQuitadas").getResultList();
}
@SuppressWarnings("unchecked")
public List<Contaspagar> listarContasPagar(){
return em.createNamedQuery("Contaspagar.findAll").getResultList();
}
@SuppressWarnings("unchecked")
public List<Contaspagar> listarContasPagarPorPeriodo(
Date dVenc1, Date dVenc2){
try{
javax.persistence.Query consulta =
em.createNamedQuery("Contaspagar.findByPeriodo");
consulta.setParameter("dvencimento1", dVenc1, TemporalType.DATE);
consulta.setParameter("dvencimento2", dVenc2, TemporalType.DATE);
return consulta.getResultList();
}catch(Exception ex){
System.out.println(ex);
}
return null;
}
public void atualizar(Contaspagar contaspagar){
em.getTransaction().begin();
em.merge(contaspagar);
em.getTransaction().commit();
}
}
[/code]
Classe de conexão com o banco
[code]package org.wellington.contaspagar.conexao;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class ConexaoDB {
private static ConexaoDB instancia = null;
private static EntityManagerFactory factory;
public ConexaoDB(){
factory = Persistence.createEntityManagerFactory("BANCO_DE_CONTAS");
}
public static ConexaoDB getInstancia(){
if(instancia == null){
instancia = new ConexaoDB();
}
return instancia;
}
public EntityManagerFactory getFactory(){
return factory;
}
}
[/code]