[Ajuda] Erro com collections!

Esse é o erro:
Exception in thread “main” java.lang.Error: Unresolved compilation problems:
The constructor CarrodaRevenda(String, String, String) is undefined
Keyboard cannot be resolved

at Principal.DemoEstoqueDaRevenda.main(DemoEstoqueDaRevenda.java:10)

Classes:

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 short 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, short 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 short 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;
}

}


package Principal;

import java.util.*;

/**

  • 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 = Keyboard.readInt();

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

{

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

opção = Keyboard.readInt();

}


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

}



public String toString()

{

StringBuffer resultado = new StringBuffer();

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

Interator carros = estoque.KeySet().iterator();

while (carros.hasNext())

{

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

resultado.append(carro.toString());

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

}

return resultado.toString();

}

package Principal;

public class DemoEstoqueDaRevenda {

private static EstoqueDaRevenda estoque;

	public static void main(String[] args) {
	
		estoque = new EstoqueDaRevenda ();
		estoque.adicionaCarro(new CarrodaRevenda("Chevrolet",
				"Celta","Life"));
		
		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 =>");
			char opção = Keyboard.readChar();
			
			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!");
			
			}
		}
}

}

Olá,
você está inicializando com um construtor que não foi criado ainda:

[code]…
estoque = new EstoqueDaRevenda ();
estoque.adicionaCarro(new CarrodaRevenda(“Chevrolet”,
“Celta”,“Life”));

boolean continua=true;
…[/code]

para funcionar corretamente você terá que fazer um construtor na classe EstoqueDaRevenda que possua três parâmetros tipo String, ou outra forma…

boa sorte.

Dica: coloque os códigos entre as tags [ code ] [/ code] para facilitar a visualização

Att.

Pessoal, arrumei aqui, só que agora a JOption não tá lendo o resultado que eu insiro.

[code]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;
}

}
[/code]

[code]package 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();

}

}
[/code]

[code]package Principal;

import javax.swing.JOptionPane;

public class DemoEstoqueDaRevenda {

private static EstoqueDaRevenda estoque;

public static void main(String[] args) {

	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 =>");
		int opção = Integer.parseInt(JOptionPane.showInputDialog(""));
		
		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!");
		
		}
	}

}

}[/code]