Pessoal, sou iniciante em Java e no Guj   e estou tentando fazer um sistema de agenda de contatos bem básica ir treinando … mas estou algumas dificuldades e gostaria da ajuda de vocês.
  e estou tentando fazer um sistema de agenda de contatos bem básica ir treinando … mas estou algumas dificuldades e gostaria da ajuda de vocês.
Bom, a conexão com o banco de dados JDBC (MySql) já está ok, o metodo adiciona() da DAO está funcionando certinho. Então implementei a classe TelaContato() com a parte gráfica, mas como faço para fazer a parte gráfica “conversar” com o banco??? Como faço para pegar o conteudo digitado nas JTextFields para jogar no banco?
Tentei fazer com uma ActionListener no botãoOk e usar o método getText() da JTextField, mas está dando vários erros quando clico no Ok da janela.
Segue abaixo minhas classes Contato, ContatoDAO e a Conexão com o Banco:
public class Contato {
	Long id;
	private String nome;
	private String telefone;
	private String email;
	private String endereco;
	
	
	//getters e setterspublic class ContatoDAO {
	private Connection connection;
	
	public ContatoDAO() {
		this.connection = new ConnectionFactory().getConnection();
	}
	
	public void adiciona(Contato contato) {
		
		String sql = "insert into contatos (nome, telefone, email, endereco) values (?,?,?,?)";
		
		try {
			PreparedStatement stmt = connection.prepareStatement(sql);
			
			stmt.setString(1, contato.getNome());
			stmt.setString(2, contato.getTelefone());
			stmt.setString(3, contato.getEmail());
			stmt.setString(4, contato.getEndereco());
			
			stmt.execute();
			stmt.close();
			
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
}public class ConnectionFactory {
	
	public Connection getConnection() {
	
		System.out.println("Conectando ao banco...");
		
		try {
			return DriverManager.getConnection("jdbc:mysql://localhost/agenda", "root", "1234");
		} catch(SQLException e) {
			throw new RuntimeException(e);
				}
		}
	
}Deixei comentado no codigo a parte que estou com dificuldades… isso que fiz está certo? É essa a idéia?
public class TelaContato {
	
	public static void main(String[] args) {
		new TelaContato().montaTela();
	}
	private JFrame janela;
	private JPanel painelPrincipal;
	private JPanel painelBotoes;
	private JPanel painelCampos;
	private JTextField campoNome;
              private JTextField campoTelefone;
	private JTextField campoEmail;
	private JTextField campoEndereco;
	
	private void montaTela() {
		// TODO Auto-generated method stub
		montaJanela();
		montaPainelPrincipal();
		montaPainelCampos();
		montaPainelBotoes();
		montaComponentesPainel();
		montaBotaoSair();
		montaBotaoOK();
		mostraJanela();
		
	}
	private void montaJanela() {
		janela = new JFrame("Agenda");
		janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	private void montaPainelPrincipal() {
		painelPrincipal = new JPanel();
		janela.add(painelPrincipal);
		painelPrincipal.setLayout(new BorderLayout());
	}
	
	private void montaPainelCampos() {
		painelCampos = new JPanel();
		painelPrincipal.add(painelCampos, BorderLayout.CENTER);
	}
	
	private void montaPainelBotoes() {
		painelBotoes = new JPanel(new GridLayout());
		painelPrincipal.add(painelBotoes, BorderLayout.SOUTH);
		
	}
	
	private void montaComponentesPainel() {
		
		JLabel labelNome = new JLabel("Nome");
		JTextField campoNome = new JTextField(20);
		painelCampos.add(labelNome);
		painelCampos.add(campoNome);
		
		JLabel labelTelefone = new JLabel("Telefone");
		JTextField campoTelefone = new JTextField(20);
		painelCampos.add(labelTelefone);
		painelCampos.add(campoTelefone);
		
		JLabel labelEmail = new JLabel("e-mail");
		JTextField campoEmail = new JTextField(20);
		painelCampos.add(labelEmail);
		painelCampos.add(campoEmail);
		
		JLabel labelEndereco = new JLabel("Endereço");
		JTextField campoEndereco = new JTextField(20);
		painelCampos.add(labelEndereco);
		painelCampos.add(campoEndereco);
		
		
		
	}
	
	private void montaBotaoOK() {
		JButton botaoOK = new JButton("OK");
		botaoOK.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
/*		
                                                        Contato contato = new Contato();
				contato.setNome(campoNome.getText());
				contato.setEmail(campoEmail.getText());
				contato.setTelefone(campoTelefone.getText());
				contato.setEndereco(campoEndereco.getText());
				
				ContatoDAO contatoDAO = new ContatoDAO();
				contatoDAO.adiciona(contato);
*/
			}
		});
		painelBotoes.add(botaoOK);
	}
	private void montaBotaoSair() {
		JButton botaoSair = new JButton("Sair");
		botaoSair.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		painelBotoes.add(botaoSair);
	}
	
	private void mostraJanela() {
		janela.pack();
		janela.setSize(280, 380);
		janela.setVisible(true);
	}
}Obrigado
