Problemas com tratemento de eventos do botão

0 respostas
tiidle

Pessoal, vou postar o código que eu fiz aqui. Espero que possam me ajudar. Eu realmente não sei mais o que fazer. Já tentei tudo o que eu pensei estar errado.

CLASSE JANELA PRINCIPAL:
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.MenuItem;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.JTabbedPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.JInternalFrame;
import javax.swing.JDesktopPane;
import javax.swing.JTextField;
import javax.swing.JButton;


import net.miginfocom.layout.ComponentWrapper;
import net.miginfocom.swing.MigLayout;

public class JanelaPrincipal extends JFrame{
   
	private JMenu menuArquivo, menuOpcoes, menuCadastro, menuConsulta;
	private JMenuItem menuItemSair, menuItemCadProd, menuItemConPreco;
	List<Produtos> list = new ArrayList<Produtos>();
	final JDesktopPane dPane = new JDesktopPane();
	JInternalFrame frame = new JInternalFrame("Papelaria", true, true, false, false);
	final JTabbedPane jTabbed = new JTabbedPane();
	CadastroProdutos cadastro = new CadastroProdutos();
	Produtos produ = new Produtos();
	private int cod;
	private String desc;
	private float vl;
	private String forn;
	private int qtde;
	
	public JanelaPrincipal()
	{
		super ("Papelaria");
		setLayout(new FlowLayout());
		
		JMenuBar menuBar = new JMenuBar(); //cria Uma barra para o menu
				
		menuArquivo = new JMenu("Arquivo");
		menuBar.add(menuArquivo);
		
		menuOpcoes = new JMenu("Opcoes");
		menuBar.add(menuOpcoes);
	    
		JMenuItem menuItemVenda = new JMenuItem("Efetuar Venda");
	    menuOpcoes.add(menuItemVenda);
	    menuItemVenda.addActionListener(
		 	       new ActionListener()
		 	       {
		 	    	   public void actionPerformed(ActionEvent event)
		 	    	   {
		 	    		   frame.setVisible(true);
		 	    		   jTabbed.setSelectedIndex(1);
		 	    	   }
		 	       });
	    
	    menuOpcoes.addSeparator();
	    
		menuCadastro = new JMenu("Cadastro");
	    menuOpcoes.add(menuCadastro);
	    
	    
	    this.add(dPane); 
	    dPane.add(frame);
		setContentPane(frame);
		frame.setVisible(false);
		JPanel panel1 = new JPanel();
		JPanel panel2 = new JPanel();
		JPanel panel3 = new JPanel();
	    
		//aba da opcao de cadastro
	    jTabbed.addTab("Cadastro Produtos", panel1);
	    final JTextField textCodProduto = new JTextField(20);
	    final JTextField textDescProduto = new JTextField(20);
	    final JTextField textPrecoProduto = new JTextField(20);
	    final JTextField textFornProduto = new JTextField(20);
	    final JTextField textQtdeProdutoEstoque = new JTextField(20);
	    JLabel labelCodProduto = new JLabel("Código do Produto");
	    labelCodProduto.setLabelFor(textCodProduto);
	    JLabel labelDescProduto = new JLabel("Descrição do Produto");
	    labelDescProduto.setLabelFor(textDescProduto);
	    JLabel labelPrecoProduto = new JLabel("Preço Unitário");
	    labelPrecoProduto.setLabelFor(textPrecoProduto);
	    JLabel labelFornProduto = new JLabel("Fornecedor do Produto");
	    labelFornProduto.setLabelFor(textFornProduto);
	    JLabel labelQtdeProdutoEstoque = new JLabel("Quantidade em estoque");
	    labelQtdeProdutoEstoque.setLabelFor(textQtdeProdutoEstoque);

	    JPanel textPane = new JPanel(new MigLayout());
	    textPane.add(labelCodProduto);
	    textPane.add(textCodProduto, "wrap");
	    textPane.add(labelDescProduto);
	    textPane.add(textDescProduto, "wrap");
	    textPane.add(labelPrecoProduto);
	    textPane.add(textPrecoProduto, "wrap");
	    textPane.add(labelFornProduto);
	    textPane.add(textFornProduto, "wrap");
	    textPane.add(labelQtdeProdutoEstoque);
	    textPane.add(textQtdeProdutoEstoque, "wrap");
	    
	    JButton botaoOK = new JButton("OK");
	    botaoOK.addActionListener(
	       new ActionListener()
	       {
	    	   public void actionPerformed(ActionEvent event)
 	    	   {
 	    	      cod = Integer.parseInt(textCodProduto.getText());
 	    	      desc = textDescProduto.getText();
 	    	      vl = Float.parseFloat(textPrecoProduto.getText());
 	    	      forn = textFornProduto.getText();
 	    	      qtde = Integer.parseInt(textQtdeProdutoEstoque.getText());
 	    	      cadastro.efetuaCadastro(list, cod, desc, vl, forn, qtde);
 	    	   }
	       });
	    
	    textPane.add(botaoOK);
	    JButton botaoCancel = new JButton("Cancelar");
	    textPane.add(botaoCancel);
	    botaoCancel.addActionListener(
	 	       new ActionListener()
	 	       {
	 	    	   public void actionPerformed(ActionEvent event)
	  	    	   {
	 	    		  frame.setVisible(false);
	  	    	   }
	 	       });
	    
	    
	    panel1.setLayout(new BorderLayout());
	    panel1.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
	    panel1.add(textPane, BorderLayout.WEST);
	 
        
     
        
	    jTabbed.addTab("Venda", panel2);
	    
	    //Aba da opcao de consultas
	    jTabbed.addTab("Consulta", panel3);
	    panel3.setLayout(new MigLayout());
	    panel3.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
	    JLabel labelConsultaCodPro = new JLabel("Digite o código do produto: ");
	    final JTextField textConsultaCodPro = new JTextField(20);
	    panel3.add(labelConsultaCodPro);
	    panel3.add(textConsultaCodPro, "wrap");
	    JButton botaoConPre = new JButton("Preço");
	    botaoConPre.addActionListener(
	    		new ActionListener()
	    		{
	    		   	public void actionPerformed(ActionEvent event)
	    		   	{
	    		   		cod = Integer.parseInt(textConsultaCodPro.getText());
	    		   		produ = null;
	    		   		produ = cadastro.consultaPreco(list, cod);
	    		   		if(produ == null)
	    		   			JOptionPane.showMessageDialog(null, "Nenhum produto encontrado");
	    		   		else
	    		   			JOptionPane.showMessageDialog(null, produ.getVl_unit());
	    		   	}
	    		});
	    JButton botaoConFor = new JButton("Fornecedor");
	    botaoConFor.addActionListener(
	    		new ActionListener()
	    		{
	    		   	public void actionPerformed(ActionEvent event)
	    		   	{
	    		   		cod = Integer.parseInt(textConsultaCodPro.getText());
	    		   		produ = cadastro.consultaPreco(list, cod);
	    		   		if(produ == null)
	    		   			JOptionPane.showMessageDialog(null, "Nenhum produto encontrado");
	    		   		else
	    		   			JOptionPane.showMessageDialog(null, produ.getForn());
	    		   	}
	    		});
	    JButton botaoConQtde = new JButton("Quantidade");
	    JButton botaoConCancel = new JButton("Cancelar");
	    panel3.add(botaoConPre, "skip, newline");
	    panel3.add(botaoConFor, "skip, newline");
	    panel3.add(botaoConQtde, "skip, newline");
	    panel3.add(botaoConCancel, "skip, newline");
	    
	    
	    jTabbed.setVisible(true);
	    frame.setContentPane(jTabbed);
	    frame.pack();
	    
	    menuItemCadProd = new JMenuItem("Cadastro de Produtos");
	    menuCadastro.add(menuItemCadProd);
	    menuItemCadProd.addActionListener(
	 	       new ActionListener()
	 	       {
	 	    	   public void actionPerformed(ActionEvent event)
	 	    	   {
	 	    		   frame.setVisible(true); 
	 	    		   jTabbed.setSelectedIndex(0);
	 	    	   }
	 	       });
	    
	    menuItemSair = new JMenuItem("Sair");
	    menuArquivo.add(menuItemSair);
	    menuItemSair.addActionListener(
	       new ActionListener()
	       {
	    	   public void actionPerformed(ActionEvent event)
	    	   {
	    		   System.exit( 0 );
	    	   }
	       });
	    menuConsulta = new JMenu("Consulta");
	    menuOpcoes.add(menuConsulta);
	    
	    menuItemConPreco = new JMenuItem("Consulta de Preços");
	    menuConsulta.add(menuItemConPreco);
	    menuItemConPreco.addActionListener(
		 	       new ActionListener()
		 	       {
		 	    	   public void actionPerformed(ActionEvent event)
		 	    	   {
		 	    		   frame.setVisible(true); 
		 	    		   jTabbed.setSelectedIndex(2);
		 	    	   }
		 	       });
	    
	    
	    JMenuItem menuItemConFor = new JMenuItem("Consulta de fornecedor");
	    menuConsulta.add(menuItemConFor);
	    menuItemConFor.addActionListener(
		 	       new ActionListener()
		 	       {
		 	    	   public void actionPerformed(ActionEvent event)
		 	    	   {
		 	    		   frame.setVisible(true); 
		 	    		   jTabbed.setSelectedIndex(2);
		 	    	   }
		 	       });
	    
	    JMenuItem menuItemConQtde = new JMenuItem("Consulta Quantidade Estoque");
	    menuConsulta.add(menuItemConQtde);
	    menuItemConQtde.addActionListener(
		 	       new ActionListener()
		 	       {
		 	    	   public void actionPerformed(ActionEvent event)
		 	    	   {
		 	    		   frame.setVisible(true); 
		 	    		   jTabbed.setSelectedIndex(2);
		 	    	   }
		 	       });
	    
	    
	    this.setJMenuBar(menuBar);
	    
	    
	}
}

CLASSE PRODUTOS:

import java.util.LinkedList;

public class Produtos {
   
	private int cod_prod;
	private String desc_prod;
	private float vl_unit;
	private String forn;
	private int qtde_estoque;
	
	public Produtos()
	{
		setCod_prod(0);
		setDesc_prod("");
		setVl_unit(0);
		setForn("");
		setQtde_estoque(0);
	}
	
	public Produtos(int cod, String desc, float vl, String forn, int qtde)
	{
		setCod_prod(cod);
		setDesc_prod(desc);
		setVl_unit(vl);
		setForn(forn);
		setQtde_estoque(qtde);
	}
	
	public int getCod_prod() {
		return cod_prod;
	}
	public void setCod_prod(int cod_prod) {
		this.cod_prod = cod_prod;
	}
	
	public String getDesc_prod() {
		return desc_prod;
	}
	public void setDesc_prod(String desc_prod) {
		this.desc_prod = desc_prod;
	}
	
	public float getVl_unit() {
		return vl_unit;
	}
	public void setVl_unit(float vl_unit) {
		this.vl_unit = vl_unit;
	}
	
	public String getForn() {
		return forn;
	}
	public void setForn(String forn) {
		this.forn = forn;
	}
	
	public int getQtde_estoque() {
		return qtde_estoque;
	}
	public void setQtde_estoque(int qtde_estoque) {
		this.qtde_estoque = qtde_estoque;
	}
	
	
}
CLASSE CADASTROPRODUTOS
import java.util.List;
import java.util.ListIterator;
import javax.swing.JOptionPane;

public class CadastroProdutos {
		
	public void efetuaCadastro(List<Produtos> list, int cod, String desc, float vl, String forn, int qtde)
	{
		Produtos produto = new Produtos(cod, desc, vl, forn, qtde);
		list.add(produto);
	}
	
	public Produtos consultaPreco(List<Produtos> list, int cod)
	{		
		Produtos produ = new Produtos();
		int i = 0;
		produ = null;
		
		if(list.isEmpty())
           return produ = null;
		
		for(i = 0; i <= list.size(); i++)
		{			
			if(list.get(i).getCod_prod() == cod)
			   {
				  produ = list.get(i);
				  break;
			   }
		}
		
		return produ;
	}
}

CLASSE TESTEGERAL

import javax.swing.JFrame;
public class testeGeral {

	public static void main(String[] args) {
       
		JanelaPrincipal janela = new JanelaPrincipal();
		janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		janela.setSize(800, 600);
		janela.setVisible(true);
		
		
	}

}

o que acontece é o seguinte: Quando eu executo a classe teste, abre uma jenela e beleza. Clico em opções, consulta e digito qualquer valor no campo codigo do produto. Ele da uma mensagem dizendo que não achou nada, pois nada foi cadastrado ainda... Mas quando eu cadastro alguma coisa, e depois coloco um codigo que ainda não foi cadastrado, ele deveria dar a mensagem dizendo que não encontrou nada também!! Mas pelo contrário! Ele dá erro!! Helpppppp

Criado 22 de setembro de 2008
Respostas 0
Participantes 1