Problema simples de locadora de carros

To fazendo um programinha bem simples pra cadastrar carro, onde fiz uma classe carro e outra classe locadora que vai ter o metodo main e a interface grafica do programa.
o problema esta que na hora de eu apertar o botao que fiz pra cadastrar o carro ele da erro!
a ideia era que ele pegasse cada informacao que esta nos TextFields e passasse pro atribuito do novo carro.

o codigo esta aqui[code]import java.awt.Component;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Locadora extends JFrame {

 Carro carros[];
int capacidade=10;
int quantidade=0;

 JFrame janela = new JFrame();
 JTextField nome = new JTextField("digite o nome do carro");
 JTextField marca = new JTextField("digite a marca do carro");
 JTextField preço = new JTextField("digite o preço do carro");
 JTextField codigo = new JTextField("digite o codigo do carro");

 JButton botao = new JButton("pesquisar"); 
 JButton botao2 = new JButton("registrar"); 
 

Locadora loc = new Locadora();



public int getCapacidade() {
	return capacidade;
}

public void setCapacidade() {
	carros[10]= new Carro();
	
}

public int getQuantidade() {
	return quantidade;
}

public  void ggo() {

	
	
	
	botao.addActionListener(new ManipularPesquisa());
    botao2.addActionListener(new ManipularRegistro());
    janela.setLayout(null);
    addComponent(janela,nome,0,0,170,20);
	addComponent(janela,marca,0,55,170,20);
	addComponent(janela,preço,0,110,170,20);
	addComponent(janela,codigo,0,165,170,20);
	addComponent(janela,botao,180,27,100,40);
	addComponent(janela,botao2,180,137,100,40);
	janela.setDefaultCloseOperation(HIDE_ON_CLOSE);
	janela.setSize(300,300);
    janela.setVisible(true);
	
	
	
	
	
}

public static void main(String args[]){
	
	Locadora ld = new Locadora();
	ld.ggo();
}

public void cadastrarCarro(){
	if(this.quantidade<this.capacidade){
		carros[this.quantidade]=new Carro() ;
		this.quantidade++;
	}
	
	}
	public Carro pesquisarCarro(String n){
		for(int i = 0; i < quantidade;i++){
			if (carros[i].getNome()==n)
					return carros[i];
		}
	 return null;
	}

	private  void addComponent(Container container,Component c,int x,int y,int width,int height) 
	{ 
		c.setBounds(x,y,width,height); 
		container.add(c); 
	} 

	class ManipularRegistro implements ActionListener{

		@Override
		public void actionPerformed(ActionEvent arg0) {
			
			loc.setCapacidade();
			loc.cadastrarCarro();
			
			carros[quantidade-1].setNome(nome.getText());
			carros[quantidade-1].setCodigo(Integer.parseInt(codigo.getText()));
			carros[quantidade-1].setMarca(marca.getText());
			carros[quantidade-1].setPreço(Integer.parseInt(preço.getText()));
		
			
		}
	}
		class ManipularPesquisa implements ActionListener{

			@Override
			public void actionPerformed(ActionEvent arg0) {
						JOptionPane.showMessageDialog(null,loc.pesquisarCarro(nome.getText()).getNome());			
				
				
			}
		
		
		
	}

}
[/code]

a classe carro ta aqui:


public class Carro {
String nome, marca;
int preço,codigo;
boolean alugado;

public boolean isAlugado() {
	return alugado;
}
public void setAlugado(boolean alugado) {
	this.alugado = alugado;
}
public String getNome() {
	return nome;
}
public void setNome(String nome) {
	this.nome = nome;
}
public String getMarca() {
	return marca;
}
public void setMarca(String marca) {
	this.marca = marca;
}
public int getPreço() {
	return preço;
}
public void setPreço(int preço) {
	if (alugado==false)
	this.preço = preço;
	
}

public int getCodigo() {
	return codigo;
}
public void setCodigo(int codigo) {
	if (alugado==false)
	this.codigo = codigo;
	
}
public Carro(String nome,String marca,int preço, int codigo) {
	
	this.codigo = codigo;
	this.marca = marca;
	this.nome = nome;
	this.preço = preço;
}
public Carro(){
	
}


}

por favor me ajudem.

Que erro que dá?

eh esse

at Locadora.(Locadora.java:25)

Dentro de uma classe Locadora tem um new Locadora que é chamado automaticamente.

Agora perceba que dentro dessa Locadora vai ter outro new Locadora, e dentro dele outro, e assim vai.

Remova essa recursão.

[quote=Bruno Laturner]Dentro de uma classe Locadora tem um new Locadora que é chamado automaticamente.

Agora perceba que dentro dessa Locadora vai ter outro new Locadora, e dentro dele outro, e assim vai.

Remova essa recursão.[/quote]

Valeu, mais tarde vou tentar isso :smiley:

[quote=Bruno Laturner]Dentro de uma classe Locadora tem um new Locadora que é chamado automaticamente.

Agora perceba que dentro dessa Locadora vai ter outro new Locadora, e dentro dele outro, e assim vai.

Remova essa recursão.[/quote]

eu removi e criei outra classe pra testar e não deu certo :cry: , acho que o problema não era essa recursão é algo com a linha 34 e com a 98.
não sei o que pode estar de errado.
se alguem souber por favor me ajude

Não é:

carros[10] = new Carro();

E sim:

carros = new Carro[10];

[quote=Mark_Ameba]Não é:

carros[10] = new Carro();

E sim:

carros = new Carro[10]; [/quote]

valeu! Mark_Ameba
eu ainda sou muito novo no java, erro de noob mesmo
valeu pela atenção

Olá,

desculpem a questão básica. Estou a tentar aprender com o código disponível.
Como executar o código com o eclipse. Não deveria aparecer o ambiente grafico quando clicamos em cima do ficheiro Locadora com o botao direito do mouse e escolhermos RUN AS -> JAVA APLLICATION

abc,
bushin

Estou com um trabalho pra entregar e queria que você por favor postasse ai o código main desse projeto ou o código principal que chama as funções. Por favor…