[resolvido]Menu

5 respostas
D

ola estou com uma duvida
gostaria de saber o q esta dando errado no meu codigo
pois a janela quando executada sozinha ela grava no banco, altera e exclui
mais quando chamada pelo menu.......nenhuma dessas opçoes funcionam
alguem por gentileza poderia me ajudar e pro meu tcc obrigada!!!

uso o banco de dados postgree e os codigos sao os seguintes o da janela:

import java.awt.*;
import java.awt.event.*;


import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.*;


import Modelo.Compra;
// Ctrl+Shift+F => Formata o código
// Ctrl+A e Ctrl+i => Formata a seleção

public class JanelaCompra extends JFrame {
	private JLabel rotulo1, rotulo2, rotulo3,rotulo4;
	private JTextField caixa1, caixa2, caixa3,caixa4;
	private JButton botao1, botao2, botao3, botao4;

	private static EntityManagerFactory fabricaDeEntidades = null;

	private static EntityManager gerenciador = null;

	public JanelaCompra(EntityManagerFactory fabricaDeEntidades2, EntityManager gerenciador2) {
		super("Compras");
		Container tela = getContentPane();

		tela.setLayout(null);

	
		rotulo1 = new JLabel("Codigo");
		rotulo2 = new JLabel("Descricao:");
		rotulo3 = new JLabel("Data:");
		rotulo4 = new JLabel("Valor:");

		caixa1 = new JTextField();
		caixa2 = new JTextField();
		caixa3 = new JTextField();
		caixa4 = new JTextField();

		botao1 = new JButton("Incluir");
		botao2 = new JButton("Alterar");
		botao3 = new JButton("Excluir");
		botao4 = new JButton("Fechar");
		
		// coluna, linha, largura, altura
		rotulo1.setBounds(1, 10, 100, 20);
		caixa1.setBounds(110, 10, 200, 20);

		botao1.setBounds(50, 200, 100, 20);
		botao2.setBounds(160, 200, 70, 20);
		botao3.setBounds(240, 200, 100, 20);
		botao4.setBounds(345, 200, 150, 20);

		rotulo2.setBounds(1, 50, 100, 20);
		caixa2.setBounds(110, 50, 200, 20);

		rotulo3.setBounds(1, 100, 100, 20);
		caixa3.setBounds(110, 100, 200, 20);
		
		rotulo4.setBounds(1, 150, 100, 20);
		caixa4.setBounds(110, 150, 200, 20);

		tela.add(rotulo1);
		tela.add(caixa1);

		tela.add(rotulo2);
		tela.add(caixa2);

		tela.add(botao1);
		tela.add(botao2);
		tela.add(botao3);
		tela.add(botao4);
		

		tela.add(rotulo3);
		tela.add(caixa3);
		
		tela.add(rotulo4);
		tela.add(caixa4);
		
			caixa1.addFocusListener(new FocusListener() {
	
				public void focusGained(FocusEvent e) {
					// TODO Auto-generated method stub
					
				}
	
				// Ao perder o foco do caixa1 é executado este método
				public void focusLost(FocusEvent e) {
					// TODO Auto-generated method stub
					
					if (!caixa1.getText().trim().equals("")){
						// Se o campo conter um valor diferente de vazio
					
						Compra objetoCompra = 
									gerenciador.find(Compra.class,Integer.parseInt(caixa1.getText()));
									
									if(objetoCompra != null ){
										caixa2.setText(objetoCompra.getDescricao());
										caixa3.setText(""+objetoCompra.getData());
										caixa4.setText(""+objetoCompra.getValor());
										botao1.setEnabled(false);
										JOptionPane.showMessageDialog(null,"Compra já cadastrada com este código!!!");
									
									}else {
										botao1.setEnabled(true);
										caixa2.setText("");
										caixa3.setText("");
										caixa4.setText("");
										JOptionPane.showMessageDialog(null,"Código livre para cadastro!");
									}
								}
				}
				
				});
		
		botao1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// Persistir dados
				// inclusão de um novo registro
				if (caixa1.getText().trim().equals("")) {
					JOptionPane.showMessageDialog(null,
							"Informe o código da Compra!");
					caixa1.requestFocus();
				} else if (caixa2.getText().trim().equals("")) {
					JOptionPane.showMessageDialog(null,
							"Informe a Descrição da Compra!");
					caixa2.requestFocus();
				} else if (caixa3.getText().trim().equals("")) {
					JOptionPane.showMessageDialog(null,
							"Informe a Data da Compra!");
					        caixa3.requestFocus();
				}else if (caixa4.getText().trim().equals("")) {
						JOptionPane.showMessageDialog(null,
						"Informe o Valor da Compra!");
				          caixa4.requestFocus();
				} else {

						Compra objetoCompra = new Compra();
						objetoCompra.setCodcompra(Integer.parseInt(caixa1
								.getText()));
						objetoCompra.setDescricao(caixa2.getText());
						objetoCompra.setData(caixa3
								.getText());
						objetoCompra.setValor(Double.parseDouble(caixa4
								.getText()));
						gerenciador.getTransaction().begin();
						gerenciador.persist(objetoCompra);
						gerenciador.getTransaction().commit();
						JOptionPane.showMessageDialog(null,
								"Compra  Gravada com Sucesso!");
					 
				}
			}
		});

		botao2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// fecha a janela
				Compra p = new Compra();
				 p.setCodcompra(Integer.parseInt(caixa1.getText()));
		        p.setDescricao(caixa2.getText());
		        p.setData(caixa3.getText());
		        p.setValor(Double.parseDouble(caixa4.getText()));
		       

		        gerenciador.getTransaction().begin();
		        gerenciador.merge(p);
		        gerenciador.getTransaction().commit();

		        JOptionPane.showMessageDialog(null,"Registro Alterado Com Sucesso");

		        
						}
		});

		botao3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// cria nova janela
				Compra o = new Compra();
		        gerenciador.getTransaction().begin();
		        gerenciador.remove(o);
		        gerenciador.getTransaction().commit();

		        JOptionPane.showMessageDialog(null,"Registro Excluido Com Sucesso");

		       
			}
		});
		

		botao4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// cria nova janela
				dispose();
			}
		});

		// setSize(largura, altura);
		setSize(700, 250);
		setVisible(true);
		setLocationRelativeTo(null);
	}

	public static void main(String[] args) {

		fabricaDeEntidades = Persistence
				.createEntityManagerFactory("TurmaN40PostgreSQL");

		gerenciador = fabricaDeEntidades.createEntityManager();

		JanelaCompra app = new JanelaCompra(fabricaDeEntidades, gerenciador);
		app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}
}

e do menu

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.swing.*;

public class Menu extends JFrame{
	
	private static EntityManagerFactory fabricaDeEntidades = null;
	private static EntityManager gerenciador = null;

  public Menu(EntityManagerFactory fabricaDeEntidades2, EntityManager gerenciador2){
    super("Menus");

    // Cria a barra de menus
    JMenuBar barra = new JMenuBar();
    setJMenuBar(barra);


    // Cria um menu
    JMenu opcoes = new JMenu("Opções");
    JMenu utilitarios = new JMenu("Utilitarios do Sistema");

    // Cria outro menu
    JMenu sub = new JMenu("Financeiro");    
    JMenu sub1 = new JMenu("Clientes");
    JMenu sub2 = new JMenu("Fornecedores");
    JMenu sub3 = new JMenu("Funcionarios");
    JMenu sub4 = new JMenu("Compras");
    JMenu sub5 = new JMenu("Produtos");
    JMenu sub6 = new JMenu("Servicos");
    JMenu sub7 = new JMenu("Contas");
    JMenu sairsistema = new JMenu("SairSistema");
    // Adiciona o segundo JMenu ao primeiro
    opcoes.add(sub);
    opcoes.add(sub1);
    opcoes.add(sub2);
    opcoes.add(sub3);
    opcoes.add(sub4);
    opcoes.add(sub5);
    opcoes.add(sub6);
    opcoes.add(sub7);
    utilitarios.add(sairsistema);
    // Cria um item de menu e o adiciona ao
    // segundo JMenu
    JMenuItem item = new JMenuItem("Buscar Forma de Pagamento");
    JMenuItem item1 = new JMenuItem("Consultar Vendas");
    JMenuItem item2 = new JMenuItem("Cadastrar Forma de Pagamento");
    JMenuItem item3 = new JMenuItem("Cadastrar Movimento");
    JMenuItem item4 = new JMenuItem("Cadastrar Pagamento");
    JMenuItem item5 = new JMenuItem("Cadastrar Venda");
    JMenuItem item6 = new JMenuItem("Cadastrar Venda por Vendedor");
    JMenuItem item7 = new JMenuItem("Consultar Cliente");
    JMenuItem item8 = new JMenuItem("Cadastrar Cliente");
    JMenuItem item9 = new JMenuItem("Consultar Fornecedores");
    JMenuItem item10 = new JMenuItem("Cadastrar Fornecedores");
    JMenuItem item11 = new JMenuItem("Consultar Funcionarios");
    JMenuItem item12 = new JMenuItem("Cadastrar Funcionarios");
    JMenuItem item13 = new JMenuItem("Consultar Compras");
    JMenuItem item14 = new JMenuItem("Cadastrar Compras");
    JMenuItem item15 = new JMenuItem("Consultar Preços");
    JMenuItem item16 = new JMenuItem("Consultar Produtos");
    JMenuItem item17 = new JMenuItem("Cadastrar Produtos");
    JMenuItem item18 = new JMenuItem("Cadastrar Produto Fornecedor");
    JMenuItem item19 = new JMenuItem("Confirmar Serviços");
    JMenuItem item20 = new JMenuItem("Cadastrar Medidas");
    JMenuItem item21 = new JMenuItem("Cadastrar Orçamento");
    JMenuItem item22 = new JMenuItem("Cadastrar Contas");
    JMenuItem item23 = new JMenuItem("Sair");
    
    
    sub.add(item);
    sub.add(item1);
    sub.add(item2);
    sub.add(item3);
    sub.add(item4);
    sub.add(item5);
    sub.add(item6);
    
    sub1.add(item7);
    sub1.add(item8);
    
    sub2.add(item9);
    sub2.add(item10);
    
    sub3.add(item11);
    sub3.add(item12);
    
    sub4.add(item13);
    sub4.add(item14);
    
    sub5.add(item15);
    sub5.add(item16);
    sub5.add(item17);
    sub5.add(item18);
    
    sub6.add(item19);
    sub6.add(item20);
    sub6.add(item21);

    sub7.add(item22);
    
    sairsistema.add(item23);
    
    // Adiciona o menu à barra de menus
    barra.add(opcoes);
	barra.add(utilitarios);
	
    setSize(300, 150);
    setVisible(true);    


    item23.addActionListener(new ActionListener(){
		
		public void actionPerformed(ActionEvent arg0) {
			//System.exit(0); // Finaliza a aplicação
			System.exit(0);
		}

	});
  
  item.addActionListener(new ActionListener()
	{
		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
	
			BuscarFormadePagamento app = new BuscarFormadePagamento(fabricaDeEntidades, gerenciador);
			
		}
	});
  
  item1.addActionListener(new ActionListener()
	{
		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
	
			ConsultaVenda app = new ConsultaVenda(fabricaDeEntidades, gerenciador);
	
		}
	});

  item2.addActionListener(new ActionListener()
	{
		public void actionPerformed(ActionEvent arg0) {
			// TODO Auto-generated method stub
	
			JanelaFormadePagamento app = new JanelaFormadePagamento(fabricaDeEntidades, gerenciador);
	
		}
	});

item3.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		JanelaMovimento app = new JanelaMovimento(fabricaDeEntidades, gerenciador);

	}
});

item4.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		JanelaPagamento app = new JanelaPagamento(fabricaDeEntidades, gerenciador);

	}
});

item5.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		JanelaVenda app = new JanelaVenda(fabricaDeEntidades, gerenciador);

	}
});

item6.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		JanelaVendaporVendedor app = new JanelaVendaporVendedor(fabricaDeEntidades,gerenciador);

	}
});

item7.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		ConsultaCliente app = new ConsultaCliente(fabricaDeEntidades, gerenciador);

	}
});

item8.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		JanelaCliente app = new JanelaCliente(fabricaDeEntidades,gerenciador);

	}
});

item9.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		ConsultaFornecedores app = new ConsultaFornecedores(fabricaDeEntidades, gerenciador);

	}
});

item10.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		JanelaFornecedor app = new JanelaFornecedor(fabricaDeEntidades, gerenciador);

	}
});

item11.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		ConsultaFuncionarios app = new ConsultaFuncionarios(fabricaDeEntidades, gerenciador);

	}
});

item12.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		JanelaFuncionario app = new JanelaFuncionario(fabricaDeEntidades, gerenciador);

	}
});

item13.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		ConsultaCompras app = new ConsultaCompras(fabricaDeEntidades, gerenciador);

	}
});

  item14.addActionListener(new ActionListener()
  {
  	public void actionPerformed(ActionEvent arg0) {
  		// TODO Auto-generated method stub

  		JanelaCompra app = new JanelaCompra(fabricaDeEntidades, gerenciador);

  	}
  });

  item15.addActionListener(new ActionListener()
  {
  	public void actionPerformed(ActionEvent arg0) {
  		// TODO Auto-generated method stub

  		ConsultaPreços app = new ConsultaPreços(fabricaDeEntidades, gerenciador);

  	}
  });

item16.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		ConsultaProdutos app = new ConsultaProdutos(fabricaDeEntidades, gerenciador);

	}
});

  item17.addActionListener(new ActionListener()
  {
  	public void actionPerformed(ActionEvent arg0) {
  		// TODO Auto-generated method stub

  		JanelaProduto app = new JanelaProduto(fabricaDeEntidades, gerenciador);

  	}
  });

item18.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		ProdutoFornecedor app = new ProdutoFornecedor(fabricaDeEntidades,gerenciador);

	}
});

  item19.addActionListener(new ActionListener()
  {
  	public void actionPerformed(ActionEvent arg0) {
  		// TODO Auto-generated method stub

  		ConfirmarServico app = new ConfirmarServico(fabricaDeEntidades, gerenciador);

  	}
  });

item20.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		JanelaMedidas app = new JanelaMedidas(fabricaDeEntidades, gerenciador);

	}
});

item21.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		JanelaOrcamento app = new JanelaOrcamento(fabricaDeEntidades, gerenciador);

	}
});

item22.addActionListener(new ActionListener()
{
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub

		JanelaConta app = new JanelaConta(fabricaDeEntidades, gerenciador);

	}
});
}
  public static void main (String args[]){

		Menu app = new Menu(fabricaDeEntidades, gerenciador);
		app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
  }

tem varias janelas mais soo quis dar exemplo de uma pois assim ja da pra ajudar!!! obrigadaaaa pois sao todas iguais!!!! so muda os campos!!

5 Respostas

KamikazeBr

Observe mais atentamente seu código.
Veja que no seu teste com sua main() na classe JanelaCompra você usa a variavel gerenciador e no seu construtor a sua variavel é gerenciador2, o codigo que segue dentro do seu construtor deveria usar o parâmetro de assinatura do construtor no caso o gerenciador2 e não o gerenciador.

private static EntityManager gerenciador = null;
public JanelaCompra(EntityManagerFactory fabricaDeEntidades2, EntityManager gerenciador2) {

Por isso que de uma maneira irá funcionar e de outra não.

Alias quer uma sugestão não coloque tudo isso dentro do construtor, crie métodos e reaproveite-os.

D

ola tentei passar como parametro a fabrica de entidades2 e o gerenciador2 mais mesmo assim ainda nao funciona…
métodos tipo?
pode me dar um exemplo
obrigada!

D

irei postar o erro que da quando tento cadastrar pelo menu

xception in thread AWT-EventQueue-0 java.lang.NullPointerException

at JanelaCompra$1.focusLost(JanelaCompra.java:97)

at java.awt.AWTEventMulticaster.focusLost(Unknown Source)

at java.awt.Component.processFocusEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)

at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)

at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)
W

Quando você executa a classe JanelaCompra, o método main() está inicializando os atributos gerenciador e fabricaDeEntidades, agora no método main() da classe Menu, você não faz essas inicializações…

Para que o seu código funcione sem mexer muita coisa nele, você deve transferir o código do método main() da classe JanelaCompra para o método main() da classe Menu.

Tente seguir a sugestão do KamikazeBr, tente criar métodos mais “reaproveitáveis” e se a classe JanelaCompra não for a classe que irá inicializar o sistema retire o método main(), pois não faz muito sentido, mais uma coisa você não está utilizando gerenciador2 e fabricaDeEntidades2.

Mas tente colocar o conteúdo do método main() da classe JanelaCompra para o método main() da classe Menu e veja se resolve seu problema.

D

valeu resolvido

Criado 20 de março de 2011
Ultima resposta 21 de mar. de 2011
Respostas 5
Participantes 3