Fórum Listar dados gravados em um banco de dados em um JTextField #500403
06/11/2014
0
Filtrar:
JButton btnFiltrar = new JButton("Filtrar");
btnFiltrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
GerenciaAgenda ga = new GerenciaAgenda();
Agenda a = new Agenda();
a.setId(Integer.parseInt(txtID.getText()));
ga.selecionar(a.getId());
txtNome.setText(a.getNome());
txtEmail.setText(a.getEmail());
txtCpf.setText(a.getCpf());
}
});Listar BD:
public Agenda selecionar(int id){
Connection c = new Conexao().criarConexao();
String sql = "SELECT * FROM agenda WHERE id=?";
try {
PreparedStatement p = c.prepareStatement(sql);
p.setInt(1, id);
ResultSet resultado = p.executeQuery();
if (resultado.next()){
Agenda a = new Agenda();
a.setId(id);
a.setNome( resultado.getString("nome"));
a.setEmail( resultado.getString("email"));
a.setCpf( resultado.getString("cpf"));
return a;
}
} catch (SQLException ex) {
Logger.getLogger(GerenciaAgenda.class.getName()).log(Level.SEVERE, null, ex);
} finally {
new Conexao().fecharConexao(c);
}
return null;
}Podem me ajudar ? Agradeço desde já, Abraços
Syclus Ltda
Curtir tópico
+ 0Post mais votado
07/11/2014
Filtrar:
JButton btnFiltrar = new JButton("Filtrar");
btnFiltrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
GerenciaAgenda ga = new GerenciaAgenda();
Agenda a = new Agenda();
a.setId(Integer.parseInt(txtID.getText()));
ga.selecionar(a.getId());
txtNome.setText(a.getNome());
txtEmail.setText(a.getEmail());
txtCpf.setText(a.getCpf());
}
});Listar BD:
public Agenda selecionar(int id){
Connection c = new Conexao().criarConexao();
String sql = "SELECT * FROM agenda WHERE id=?";
try {
PreparedStatement p = c.prepareStatement(sql);
p.setInt(1, id);
ResultSet resultado = p.executeQuery();
if (resultado.next()){
Agenda a = new Agenda();
a.setId(id);
a.setNome( resultado.getString("nome"));
a.setEmail( resultado.getString("email"));
a.setCpf( resultado.getString("cpf"));
return a;
}
} catch (SQLException ex) {
Logger.getLogger(GerenciaAgenda.class.getName()).log(Level.SEVERE, null, ex);
} finally {
new Conexao().fecharConexao(c);
}
return null;
}Podem me ajudar ? Agradeço desde já, Abraços
Seu código está quase certo, só que faltou você atribuir o retorno do método selecionar() para o objeto agenda, faça assim:
a = ga.selecionar(a.getId());
Sem isso, os dados o objeto retornado não serão populados.
Ronaldo Lanhellas
Gostei + 1
Mais Posts
07/11/2014
Syclus Ltda
Agora estou com uma dúvida chata e já pesquisei em tudo que é lugar e não consigo fazer funcionar, no meu programa quando eu clico em "ADICIONAR" o programa abre uma tela para inserir os dados e eu tenho 2 botões, 1 - SALVAR 2 - CANCELAR, eu queria que quando o usuário clicasse em salvar essa tela se fechasse deixando a tela principal aberta, e também ao clicar em cancelar somente a tela de cadastro de fechasse, já tentei chamar o this.dispose(); o this.setVisible(false); e nada acontece a tela continua aberta, tendo que fechar no X na tela, poderia me ajudar ?
Código do Botão SALVAR:
JButton btnSalvar = new JButton("Salvar");
btnSalvar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
GerenciaAgenda ga = new GerenciaAgenda();
Agenda a = new Agenda();
a.setNome(txtNome.getText());
a.setEmail(txtEmail.getText());
a.setCpf(txtCpf.getText());
ga.inserir(a);
JOptionPane.showMessageDialog(null, "Cadastro efetuado com sucesso!");
}
});Código para chamar a tela ADICIONAR:
JButton btnAdicionar = new JButton("Adicionar");
btnAdicionar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
AdicionarFrame chamaCad = new AdicionarFrame();
chamaCad.setVisible(true);
}
});
btnAdicionar.setToolTipText("Cadastrar cliente.");
btnAdicionar.setBounds(130, 0, 169, 23);
add(btnAdicionar);No caso eu tenho um JPanel chamado TELA que tem os botões de adicionar, remover etc. e ao clicar em adicionar o sistema chama o AdicionarFrame que é um JFrame com os dados para o usuário inserir. Como que eu faço para somente a tela de cadastro fechar ao clicar em SALVAR ?
Abraços
Gostei + 0
07/11/2014
Ronaldo Lanhellas
Gostei + 0
07/11/2014
Syclus Ltda
public class AdicionarFrame extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AdicionarFrame frame = new AdicionarFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public AdicionarFrame() {
setTitle("Adicionar");
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
tabbedPane.addTab("Adicionar", new Adicionar());
contentPane.add(tabbedPane, BorderLayout.CENTER);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}Acho que descobri o que está acontecendo, mas se for isso mesmo, vou ter que fazer as classes todas, eu estou criando um JPanel e criando os JTextField e JButton nesse JPanel, após isso eu estou criando um JFrame e dentro dele jogando um JTabbedPane e criando o JPanel dentro desse JTabbedPane.
Eu fiz um teste a pouco, criei um JFrame direto, adicionei os JTextField e JButton, e coloquei no listener do JButto:n nomedaframe.this.dispose(); e funcionou.
Segue o código:
public class Sobre extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Sobre frame = new Sobre();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Sobre() {
setTitle("Sobre");
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblSobre = new JLabel("Informa\u00E7\u00F5es do Aluno Desenvolvedor do Projeto");
lblSobre.setFont(new Font("Tahoma", Font.BOLD, 14));
lblSobre.setBounds(43, 11, 338, 14);
contentPane.add(lblSobre);
JTextArea txtrAluno = new JTextArea();
txtrAluno.setFont(new Font("Times New Roman", Font.PLAIN, 15));
txtrAluno.setBackground(Color.ORANGE);
txtrAluno.setEditable(false);
txtrAluno.setText("Aluno: Newton Duarte Cavalcanti\r\nE-Mail: newton_@hotmail.com\r\nFaculdade de Alagoas - Est\u00E1cio FAL\r\n\r\n07 de Novembro de 2014\r\nMacei\u00F3/AL\r\nTodos os Direitos Reservados");
txtrAluno.setBounds(10, 70, 414, 130);
contentPane.add(txtrAluno);
JButton btnOk = new JButton("OK");
btnOk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Sobre.this.dispose();
}
});
btnOk.setBounds(335, 212, 89, 23);
contentPane.add(btnOk);
}
}Gostei + 0
07/11/2014
Ronaldo Lanhellas
Gostei + 0
11/11/2014
Syclus Ltda
Eu refiz o projeto inteiro esse fim de semana, e está perfeito, consegui fazer a janela fechar com o frame.this.dispose();
Obrigado pela atenção, abraços!
Gostei + 0
11/11/2014
Ronaldo Lanhellas
Eu refiz o projeto inteiro esse fim de semana, e está perfeito, consegui fazer a janela fechar com o frame.this.dispose();
Obrigado pela atenção, abraços!
Sem problemas. boa sorte no projeto.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)