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.

, acho que o problema não era essa recursão é algo com a linha 34 e com a 98.