Boa tarde!
O que ta acontecendo comigo é o seguinte eu tenho um form principal, nest form tenho um menu que abre uma janela de gravação, o problema é tipo assim se gravo uma fica e fecho a janela depois quando abro a janela de novo para gravar outra ficha ele grava duas vezes e assim por diante gravará os dados conforme quantas vezes eu abrir esta janela. Alguém pode me ajudar? Será que eu tenho que destruir a classe instanciada? Como faço isso? Será que o problema ta no objeto de gravação do banco de dados? Uma luz…
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
//Minha classe principal que possui os menus, obs: apenas o menu de cadastro de usuarios ta funcionando
public class JPrincipal extends JFrame {
public void criarJanela(){
//Titulo da janela
this.setTitle("TITANIUS");
this.getContentPane().setLayout(null);
//Janela Maximizada
this.setExtendedState(MAXIMIZED_BOTH);
//Fechar a aplicação quando clicar no "x", parar vm
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
//Cria objeto de JPanel
JPanel painel = new JPanel();
//Redimensiona o objeto
painel.setSize(1268,768);
//Seleciona uma cor de fundo para o objeto e a coloca
//Adiciona painel a janela
painel.setBackground(Color.black);
this.add(painel);
//Cria objeto da barra de menu
JMenuBar menubar = new JMenuBar();
//Cria objeto menu e seus objetos itens abaixo de cada um
JMenu mnucadastro = new JMenu("Cadastro");
JMenuItem cadusuarios = new JMenuItem("Usuários");
JMenuItem cadclientes = new JMenuItem("Clientes");
JMenuItem cadfornece = new JMenuItem("Fornecedores");
JMenuItem sair = new JMenuItem("Sair");
mnucadastro.add(cadusuarios);
mnucadastro.add(cadclientes);
mnucadastro.add(cadfornece);
mnucadastro.add(sair);
menubar.add(mnucadastro);
cadusuarios.addActionListener(new ClicadoCadUsu());
sair.addActionListener(new ClicadoSair());
JMenu mnurelatorio = new JMenu("Relatório");
JMenuItem relusuarios = new JMenuItem("Usuários");
JMenuItem relclientes = new JMenuItem("Clientes");
JMenuItem relfornece = new JMenuItem("Fornecedores");
mnurelatorio.add(relusuarios);
mnurelatorio.add(relclientes);
mnurelatorio.add(relfornece);
menubar.add(mnurelatorio);
//usa o menu criado
this.setJMenuBar(menubar);
//Visibilidade da janela
this.setVisible(true);
}
public static void main(String[] args) {
JPrincipal janela = new JPrincipal();
janela.criarJanela();
}
}
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.ButtonModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
//Meu formulário de Cadastro de Usuários
public class ClicadoCadUsu extends JFrame implements ActionListener {
//Criação de objetos
JPrincipal janela = new JPrincipal();
JLabel lblnome = new JLabel("Nome do Usuario:::>");
JLabel lblend = new JLabel("<:::Endereço do Usuario");
JLabel lblcpf = new JLabel("CPF:::>");
JLabel lbldpessoais = new JLabel("|DADOS PESSOAIS|:");
JLabel lbldlogin = new JLabel("|DADOS DE LOGIN|");
JLabel lblnlogin = new JLabel("Login:::>");
JLabel lblsen = new JLabel("<:::Senha");
JLabel lbltip = new JLabel("|TIPO DE USUÁRIO|");
JButton botaosal = new JButton("Salvar");
JButton botaosai = new JButton("Sair");
JButton botaolimpa = new JButton("Limpar");
JTextField textonome = new JTextField();
JTextField textonlog = new JTextField();
JTextField textocpf = new JTextField();
JTextField textoend = new JTextField();
JPasswordField textosen = new JPasswordField();
JPanel painel = new JPanel();
JPanel painel2 = new JPanel();
JRadioButton rbu_master = new JRadioButton("Master",false);
JRadioButton rbu_normal = new JRadioButton("Comum",false);
String tipo_u;
public void actionPerformed(ActionEvent evento){
JLabel titulotela = new JLabel("|||||||||||||||||" +
"||||||||||||||||||||||||||||||||||" +
"||||||||" +
"||||||||||||||||||||||||||||||||||||||||" +
"|||||||||||||||||||||||||||||||||" +
"|||||||||" +
">CADASTRO DE USUARIOS DO SISTEMA<|||||||||||||||||||" +
"||||||||||||||||||||||||||||||||||||||||||||||||||" +
"|||||||||||||||||||||||||||||||||||||||||||||||||||||||" +
"||||||||||||||||||||||||||||");
titulotela.setForeground(Color.yellow);
painel.setSize(1268,62);
painel2.setSize(1000,685);
painel.setBackground(Color.blue.darker());
painel2.setBackground(Color.black);
titulotela.setBounds(0, -200,1500 , 500);
lbldpessoais.setForeground(Color.blue.darker());
lbldpessoais.setBounds(250, -120, 800, 500);
lbltip.setForeground(Color.blue.darker());
lbltip.setBounds(600, 134, 800, 500);
lbldlogin.setForeground(Color.blue.darker());
lbldlogin.setBounds(250,365,200,30);
textonome.setBounds(250, 150,500, 20);
lblnome.setBounds(136,143,200,30);
textoend.setBounds(250,200,500,20);
lblend.setBounds(752,193,200,30);
textocpf.setBounds(250,250,200,20);
lblcpf.setBounds(210,243,200,30);
textonlog.setBounds(250, 400,200,20);
lblnlogin.setBounds(200,400,200,20);
textosen.setBounds(250,450,200,20);
lblsen.setBounds(454,450,200,20);
botaosal.setBounds(250,600,100,30);
botaosal.addActionListener(Salvar);
botaosai.setBounds(400,600,100,30);
botaosai.addActionListener(Sair);
botaolimpa.setBounds(325,640,100,30);
botaolimpa.addActionListener(Limpar);
rbu_master.setBounds(600,400,200,20);
rbu_normal.setBounds(600,450,200,20);
janela.add(titulotela);
janela.add(lbldpessoais);
janela.add(textonome);
janela.add(lblnome);
janela.add(textoend);
janela.add(lblend);
janela.add(textocpf);
janela.add(lblcpf);
janela.add(textonlog);
janela.add(lblnlogin);
janela.add(lbldlogin);
janela.add(textosen);
janela.add(lblsen);
janela.add(botaosal);
janela.add( botaosai);
janela.add(botaolimpa);
janela.add(rbu_master);
janela.add(rbu_normal);
janela.add(lbltip);
janela.add(painel);
janela.add(painel2);
janela.getContentPane().setLayout(null);//Permite se organizar objetos no frame
ButtonGroup bggroup = new ButtonGroup(); //cria um objeto para agrupar os botoes
bggroup.add(rbu_master);
bggroup.add(rbu_normal);
janela.setExtendedState(MAXIMIZED_BOTH); //maximiza a janela
janela.setVisible(true); //torna a janela visivel
}
ActionListener Sair = new ActionListener(){ //cria um action listener
//chama o metodo sai
public void actionPerformed(ActionEvent actionEvent){
Sai();
}
};
ActionListener Salvar = new ActionListener(){ //cria um action listener
//que chama o metodo salva.
public void actionPerformed(ActionEvent actionEvent){
Salva();
}
};
ActionListener Limpar = new ActionListener(){
public void actionPerformed(ActionEvent actionEvent){
limpar(); //chamando o metodo limpa quando se clica o botão
}
};
public void Sai(){
janela.dispose();
}
//metodo salva salva os dados
public void Salva(){
ConexaoBD grava = new ConexaoBD();
grava.conectar();
String nome =this.textonome.getText();
String end = this.textoend.getText();
String cpf = this.textocpf.getText();
String login = this.textonlog.getText();
String senha = this.textosen.getText();
//se o primeiro JRadio Button estiver marcado
if(rbu_master.isSelected()){
tipo_u="M";
grava.gravar(nome,end,cpf,login,senha,tipo_u); //grava os dados atraves do metodo gravar
}else if(rbu_normal.isSelected()){ //se o segundo JRadioButton estiver marcado
tipo_u="N";
grava.gravar(nome,end,cpf,login,senha,tipo_u);
}else{ // se nenhum dos JRadio Button estiver marcado
JOptionPane.showMessageDialog(null,"ESCOLHA UM DOS TIPOS DE USUARIOS.\nDADOS NÃO GRAVADOS!!");
}
}
//metodo limpar limpa os campos do formulario
private void limpar(){
textonome.setText("");
textoend.setText("");
textocpf.setText("");
textonlog.setText("");
textosen.setText("");
}
}
//E por fim minha classe de conexao e gravação no banco de dados
import javax.swing.JOptionPane;
public class ConexaoBD extends ClicadoCadUsu {
java.sql.Connection con;
public void conectar(){
//fazendo a conexão com o banco
try{
Class.forName("org.gjt.mm.mysql.Driver");
con = java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/bd_loja","root","root");
}
catch(Exception e){
e.printStackTrace();
throw new java.lang.RuntimeException("erro ao conectar");
}
}
public void gravar(String nome,String end,String cpf,String login,String senha, String tipo_u){
//inserindo dados
String comando = "insert into tab_usuarios(Nome_Usuario,End_Usuario,Cpf_Usuario,Login_Usuario,Senha_Usuario,Tipo_Usuario)"+
"values" + "('"+nome+"','"+end+"','"+cpf+"','"+login+"','"+senha+"','"+tipo_u+"')";
try{
java.sql.Statement stmt = con.createStatement();
stmt.executeUpdate(comando);
JOptionPane.showMessageDialog(null,"Dados Gravados com Sucesso");
stmt.close();
con.close();
}
catch(java.sql.SQLException e){
throw new java.lang.RuntimeException(e.getMessage());
}
//fechando a conexão com o banco
try{
con.close();
}
catch(Exception e){
e.printStackTrace();
throw new java.lang.RuntimeException("erro fechar");
}
}
}
Valeu ao pessoal que tentar me ajudar!