Problema urgente - ArrayList e Swing!

2 respostas
G

Fala pessoal, meu programa tá rodando, mas não tá lendo nada da JOption. Ou seja, roda mas não tem nenhum utilidade.
Seguem as 3 classes comentadas

package Principal;

public class CarrodaRevenda {

// ano de fabricação, ano do modelo, modelo, marca, preço, 
	
	
	private String modelo,marca,versão;
	private String codigo;
	private int estoque;
	private float pVenda;
	
	/**
	 *Este construtor para classe CarrdaRevenda recebe valores para inicializar os
	 *campos da classe
	 *@param mod o modelo do carro
	 *@param fab a marca do carro
	 *@param ver a versão do modelo
	 *@param cod o codigo
	 *@param est o numero de unidades de carro
	 *@param pv o preço de venda
	 */
	
	CarrodaRevenda (String mod, String fab, String ver, String cod, int est, float pv)
	{
		modelo = mod; marca = fab; versão = ver; 
		codigo = cod; estoque = est; pVenda = pv;
	}
	
	/**
	 * O método quantidadeNoEstoque retorna o estoque do livro encapsulado.
	 * @return o estoque do carro encapsulado.
	 */
	
	public int quantosNoEstoque()
	{
		return estoque;
	}
	
	/**
	 *  O método qualPreçodeVenda retorna o preço da venda do carro encapsulado.
	 *  @return o preço da venda do carro encapsulado
	 */
	
	public float qualPreçodeVenda()
	{
		return pVenda;
	}
	
	public String qualCodigo()
	{
		return codigo;
	}
	
	public String qualModelo()
	{
		return modelo;
	}
	
	public void incrementaEstoque()
	{
		estoque++;
	}

	public void decrementaEstoque()
	{
		estoque--;
	}
	/**
	 * O método toString retorna uma string contendo os campos desta classe.
	 * @retrun uma string com os valores dos campos desta classe
	 */
	public String toString()
	{
	
	String res = "Marca:"+marca+"\n"+
	             "Modelo:"+modelo+"\n"+   
	             "Versão"+versão+"\n"+
	             "Codigo"+codigo+"\n"+
	             "Estoque"+estoque+"\n"+
	             "Preço de Venda:"+pVenda+"\n";
	
	return res;
	}
	
}
ackage Principal;

import java.util.*;
import javax.swing.JOptionPane;

/**
 * A classe EstoqueDaRevenda representa uma coleção de instancias da classe
 * CarrodaRevenda. As instancias serão armazenadas em um mapa.
 * 
 *
 */

public class EstoqueDaRevenda {
	
	private Map estoque;
	private float saldoDoCaixa; // valor das vendas efetuadas
	
	/** 
	 * O construtor dessa classe inicializa os campos da classe.
	 */
	
	EstoqueDaRevenda()
	{
		estoque = new HashMap ();
	}
	
	/**
	 * O método adicionaCarro adiciona um carro à colocação representada por esta classe.
	 *@param livro uma instancia da classe CarrodaRevenda
	 */
	
	public void adicionaCarro(CarrodaRevenda carro)
	{
		String cod = carro.qualCodigo();// recupera o codigo pra usar como chave
		estoque.put(cod,carro); // adicionamos o livro com esta cahve ao mapa
	}
	/**
	 * O método mostraCaixa mostra o balanço do caixa.
	 */
	
	public void mostraCaixa()
	{
		System.out.println("Saldo do caixa: "+saldoDoCaixa);
	}
   
	/**
	 * O método vendeCarro simula a venda de um carro do estoque. O Codigo de um dos
	 * carros no estoque será pedido e o carro correspondente terá seus dados
	 * modificados
	 */
	
	public void vendeCarro()
	{
		//Recuperamos um codigo do carro no estoque com um menu
		String codigo = escolheCarro();
		//Recuperamos o carro correspondente do mapa
		CarrodaRevenda carro = (CarrodaRevenda)estoque.get(codigo);
		if (carro.quantosNoEstoque() > 0)
		{
			carro.decrementaEstoque();
			saldoDoCaixa += carro.qualPreçodeVenda();
			System.out.println("Quantidade do carro"+carro.qualModelo()+" no estoque:"+ carro.quantosNoEstoque());
			mostraCaixa();
		}
		
		else
			System.out.println("Não tempos o carro"+ carro.qualModelo()+" no estoque!");
		}
	
	/**
	 * O método escolheCarro (declarado com privado, para ser usado somente por outros
	 * métodos nesta classe) permite a escolha de um carro a partit de um número(entrada
	 * de um menu). Seria mais simples para o programador fazer o usuário entrar 
	 * diretamente o codigo do carro, o que seria mais complicado para o usuário de uma 
	 * aplicação que usasse este método (o usuário poderia digitar valores incorretos).
	 * @return o codigo do carro escolhido ( como uma String)
	 */
	private String escolheCarro()

	{

	System.out.println("=============");

	ArrayList listaDeCodigos = new ArrayList (estoque.keySet());

	for (int indice=0; indice<listaDeCodigos.size();indice++)

	{


	CarrodaRevenda carro = (CarrodaRevenda)estoque.get(listaDeCodigos.get(indice));


	System.out.println((indice+1)+" "+carro.qualModelo()+": R$ "+carro.qualPreçodeVenda());

	System.out.println("====================");

	}

	int opção = Integer.parseInt(JOptionPane.showInputDialog(""));

	while ((opção <= 0) || (opção > listaDeCodigos.size()) )

	{

	System.out.println("Por Favor entre com um valor entre 1 e"+ listaDeCodigos.size());

	opção = Integer.parseInt(JOptionPane.showInputDialog(""));

	}


	return (String)listaDeCodigos.get(opção-1);

	}



	public String toString()

	{

	StringBuffer resultado = new StringBuffer();

	resultado.append("=============");

	Iterator carros = estoque.keySet().iterator();

	while (carros.hasNext())

	{

	CarrodaRevenda carro = (CarrodaRevenda)estoque.get(carros.next());

	resultado.append(carro.toString());

	resultado.append("============");

	}

	return resultado.toString();

	}



	
}
Classe Main
package Principal;

import javax.swing.JOptionPane;
import java.util.Scanner; 
public class DemoEstoqueDaRevenda {
	
	private static EstoqueDaRevenda estoque;

	public static void main(String[] args) {
		Scanner entrada;   
        entrada = new Scanner(System.in);     
        int opção;
	
		estoque = new EstoqueDaRevenda ();
		estoque.adicionaCarro(new CarrodaRevenda("Chevrolet",
				"Celta","Life", "10 ", 1, 30000));
		
		boolean continua=true;
		while(continua)
		{
			System.out.println("Menu");
			System.out.println("1 - Consulta Estoque");
			System.out.println("2 - Vende Carro");
			System.out.println("3- Mostra Caixa");
			System.out.println("Opção =>");
			 opção = Integer.parseInt(JOptionPane.showInputDialog("--"));
			 opção = entrada.nextInt();   
			switch(opção)
			{
			case '1': System.out.println(estoque);break;
			case '2': estoque.vendeCarro() ;
			case '3': estoque.mostraCaixa();
			default : System.out.println("Opção ["+opção+"] desconhecida!");
			
			}
		}
}

2 Respostas

GabrielCardelli

Mano tira o “ç” e poe “c” tira o “Ô e poe “a”

Escolhe , ou um ou outro no código abaixo:

opção = Integer.parseInt(JOptionPane.showInputDialog("--")); opção = entrada.nextInt(); // REMOVE ESSA LINHA OU A DE CIMA

O 2° para o console o 1° para o JOPtionPane

Para corrigir
Poe assim:

opcao = Integer.parseInt(JOptionPane.showInputDialog("--")); System.out.println(opcao);

e vê o que ele vai imprimir no console,

Abraço, boa sorte.

G

valeu a ajuda cara, mas o erro persiste! :confused:
alguém consegue me dar uma luz ?

Criado 16 de junho de 2010
Ultima resposta 17 de jun. de 2010
Respostas 2
Participantes 2