Problemas com a instancia de uma janela! (novato)

0 respostas
ponte

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!

Criado 4 de dezembro de 2010
Respostas 0
Participantes 1