Duvida com programaçao java no postgres

Eu tenho uma tabela no postgres chamada funcionario com nome, codigo(serial, primary key->cod_pk),login(unique key->log_uk),senha e data de nascimento(dtnasc), e tenho o codigo em java com telas swing no eclipse, eu so tenho o campo de inserçao de nome e queria inserir os outros campos no codigo em todas as telas (Consulta,cadastro e remoçao) mas fica dando erro, alem do mais, no frame de consulta queria inserir um botão de "refresh" pra não ter que ficar tendo que rodar o codigo toda vez

Os codigos:

package br.com.jdbc;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class FrmAltDel extends JFrame implements ActionListener {
private Funcionario funcionario;
private JButton btnAlterar = new JButton("Alterar"), btnExcluir = new JButton("Excluir");
private JTextField nome = new JTextField();
private JTextField dtnasc = new JTextField();

public FrmAltDel() {
	getContentPane().setLayout(new GridLayout(2, 2));
	getContentPane().add(new JLabel("Nome:"));
	getContentPane().add(nome);
	getContentPane().add(new JLabel("Data de Nascimento:"));
	getContentPane().add(dtnasc);
	getContentPane().add(btnAlterar);
	getContentPane().add(btnExcluir);
	btnAlterar.addActionListener(this);
	btnExcluir.addActionListener(this);
	setSize(400, 400);
	setTitle("Alterar/Deletar Funcionario");
}

public Funcionario getFuncionario() {
	return funcionario;
}

public void setFuncionario(Funcionario funcionario) {
	this.funcionario = funcionario;
	nome.setText(funcionario.getNome());
	
}


@Override
public void actionPerformed(ActionEvent e) {
	// TODO Auto-generated method stub
	String driver = "org.postgresql.Driver";
	// URL de acesso ao postgres
	// String url = "jdbc:postgresql://172.16.2.35:5432/postgres";
	String url = "jdbc:postgresql://localhost:5432/postgres";
	// usuário do banco
	String user = "postgres";
	// senha do usuário do banco
	String pass = "postgres";
	try {
		// Carregando o driver
		Class.forName(driver);
		// Estabelece a conexao
		Connection con = DriverManager.getConnection(url, user, pass);
		System.out.println(con.isClosed());
		PreparedStatement ps= null;
		if (e.getSource() == btnAlterar) {
			String sql = "update funcionario set nome=? where codigo=? ";
			ps = con.prepareStatement(sql);
			ps.setString(1, nome.getText());
			ps.setInt(2, funcionario.getCodigo());
		} else {
			String sql = "delete from funcionario where codigo=?";
			ps = con.prepareStatement(sql);
			ps.setInt(1, funcionario.getCodigo());
		}
		ps.executeUpdate();

		ps.close();
		con.close();
		
	} catch (Exception ex) {
		ex.printStackTrace();
	}
}

}


package br.com.jdbc;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class FrmCadastrar extends JFrame implements ActionListener {
private JTextField jtfNome = new JTextField();
private JTextField jtfDtnasc = new JTextField();
private JButton btnCadastrar = new JButton("cadastrar");
public FrmCadastrar() {
getContentPane().setLayout(new GridLayout(3,2));
getContentPane().add(new JLabel("Nome:"));
getContentPane().add(jtfNome);
getContentPane().add(new JLabel("Data de Nascimento:"));
getContentPane().add(jtfDtnasc);
getContentPane().add(btnCadastrar);
setTitle("Cadastrar Funcionario");
setSize(400, 400);
btnCadastrar.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
// Qual banco que quer acessar
String driver = "org.postgresql.Driver";
// URL de acesso ao postgres
// String url = "jdbc:postgresql://172.16.2.35:5432/postgres";
String url = "jdbc:postgresql://localhost:5432/postgres";
// usuário do banco
String user = "postgres";
// senha do usuário do banco
String pass = "postgres";
try {
// Carregando o driver
Class.forName(driver);
// Estabelece a conexao
Connection con = DriverManager.getConnection(url, user, pass);
System.out.println(con.isClosed());
// Comando de insercao na tabela produto
String sql="insert into funcionario (nome,dtnasc) values (?,?) ";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, jtfNome.getText());
ps.executeUpdate();
ps.setString(2, jtfDtnasc.getText());
ps.executeUpdate();
ps.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}


package br.com.jdbc;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;

public class FrmConsulta extends JFrame implements ActionListener{

private JList listFuncionario;
private JButton btnNovo = new JButton("Novo");
private JButton btnSelecionar = new JButton("Selecionar");
private JButton btnRefresh = new JButton("Atualizar");
public FrmConsulta() {
	getContentPane().setLayout(new GridLayout(2,1));
	getContentPane().add(btnNovo);
	getContentPane().add(btnSelecionar);
	//getContentPane().add(btnRefresh);
	btnNovo.addActionListener(this);
	btnSelecionar.addActionListener(this);
	btnRefresh.addActionListener(this);
	setTitle("Consultar Funcionario");
	setSize(400, 400);
}

public void carregar(List<Funcionario> list) {
	listFuncionario = new JList((Vector<Funcionario>)list);
	getContentPane().add(new JLabel("Produtos:"));
	getContentPane().add(listFuncionario);
}

@Override
public void actionPerformed(ActionEvent arg0) {
	// TODO Auto-generated method stub
	if (arg0.getSource() == btnNovo) {
	FrmCadastrar frmCad = new FrmCadastrar();
	frmCad.setVisible(true);
	} else {
		Funcionario fun = (Funcionario)listFuncionario.getSelectedValue();
		FrmAltDel frmAltDel = new FrmAltDel();
		frmAltDel.setFuncionario(fun);
		frmAltDel.setVisible(true);
	}
}

}

package br.com.jdbc;

import java.util.Date;
//nao coloquei todos os getters e setters, mas esse nao é o problema primordial
public class Funcionario
{
private Date dtnasc;
private int codigo;
private String nome;
public Date getDtnasc() {
return dtnasc;
}
public void setDtnasc(Date dtnasc) {
this.dtnasc = dtnasc;
}
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String toString() {
return nome + " " + dtnasc;
}
}

//O nome dessa classe é jdbc1
package br.com.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;
import java.util.Vector;
/**

  • consult
    select * from public.cliente where codigo=2

Exclusao
delete from public.cliente
delete from public.cliente where codigo=2

Isercão
insert into public.cliente (nome, fone) values (‘george’, ‘112469D4’)

Alteração
update public.cliente set nome=‘George’, fone=‘112469D4’ where codigo = 3
*/
public class jdbc1
{
public static void main(String[] args) {
// TODO Auto-generated method stub
// Qual banco que quer acessar
String driver = “org.postgresql.Driver”;
// URL de acesso ao postgres
//String url = “jdbc:postgresql://172.16.2.35:5432/postgres”;
String url = “jdbc:postgresql://localhost:5432/postgres”;
// usuário do banco
String user = “postgres”;
// senha do usuário do banco
String pass = “postgres”;
try {
// Carregando o driver
Class.forName(driver);
// Estabelece a conexao
Connection con = DriverManager.getConnection(url, user, pass);
System.out.println(con.isClosed());
// Comando de insercao na tabela Funcionario
String sql="select * from funcionario order by nome ";
// Criando uma sentenca de execucao de comandos SQL
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
List<Funcionario> list = new Vector<Funcionario>();
while (rs.next()) {
Funcionario fun = new Funcionario();
fun.setDtnasc(rs.getDate(“dtnasc”));
fun.setNome(rs.getString(“nome”));
list.add(fun);
}
FrmConsulta frmCons = new FrmConsulta();
frmCons.carregar(list);
frmCons.setVisible(true);
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}

}

//o nome dessa classe é ExConsulta, mas acho que ela é só pra referencias, não entra no codigo
package br.com.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ExConsulta {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	// Qual banco que quer acessar
	String driver = "org.postgresql.Driver";
	// URL de acesso ao postgres
	String url = "jdbc:postgresql://localhost:5432/postgres";
	// usuário do banco
	String user = "postgres";
	// senha do usuário do banco
	String pass = "postgres";
	try {
		// Carregando o driver
		Class.forName(driver);
		// Estabelece a conexao
		Connection con = DriverManager.getConnection(url, user, pass);
		System.out.println(con.isClosed());
		// Comando de selecao
		//String insert="select codigo, nome from produto";
		String sql="select * from funcionario";
		// Criando uma sentenca de execucao de comandos SQL
		Statement stmt = con.createStatement();
		// Comando para consultar
		ResultSet rs = stmt.executeQuery(sql);
		// Percorrendo o resultado
		while (rs.next()) {
			// Obtendo a coluna Codigo
			System.out.print("Codigo: " + rs.getInt("codigo"));
			// Obtendo a coluna Nome
			System.out.println(" Nome: " + rs.getString("nome"));
		}
		con.close();
	} catch (Exception e) {
		e.printStackTrace();
	}
}

}