Posso sim, se uma bicicleta já foi criada que dizer que ela existe no array, então você apenas precisa saber qual o índice que ela está no array.
Exemplo (a classe Bicicleta que estou dando de exemplo possuí apenas dois atributos, id e cor):
// Algumas bicicletas
Bicicleta bike1 = new Bicicleta();
bike1.setId("#511");
bike1.setCor("Preta");
Bicicleta bike2 = new Bicicleta();
bike2.setId("#341");
bike2.setCor("Dourada");
Bicicleta bike3 = new Bicicleta();
bike3.setId("#451");
bike3.setCor("Verde");
// Adicionando as bicicletas em um array, isso se assemelha ao
// seu método cadastrarBicicletas, mas estou fazendo manualmente.
Bicicleta[] bicicletas = new Bicicleta[3];
bicicletas[0] = bike1;
bicicletas[1] = bike2;
bicicletas[2] = bike3;
// Agora eu quero alterar a cor da bike2, apenas preciso pegar
// a posição que ela esta e setar uma nova cor.
bicicletas[1].setCor("Vermelho");
Como você já tem um método que mostra as bicicletas e seus dados, você pode usá-lo para ver as bicicletas que já estão criadas e podem ser alteradas.
Manualmente eu consegui fazer mas para alterar pelo menu de opções eu não consegui ,sou iniciante ,vou mandar o código para vc ver ,assim vc pode entender melhor o que eu estou tentando fazer ! vlw ,obrigado!
package bicicletaria;
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class Cadastro {
ArrayList contatos = new ArrayList();
static Cliente clientes[] = null;
static Bicicleta bicicletas[] = null;
static String lista;
static int confirma = -1;
static int j = 0;
public static void main(String[] args) {
Cadastro cad = new Cadastro();
cad.contatos.add(new Cliente());
String op = "";
int opcao = -1;
do {
op = JOptionPane.showInputDialog("SISTEMA BICICLETARIA -- :\n\n"
+ "1 ~> Cadastrar Clientes.\n"
+ "2 ~> Consultar Clientes.\n"
+ "3 ~> Alterar clientes.\n"
+ "4 ~> Cadastrar bicicletas.\n"
+ "5 ~> Consultar bicicletas.\n"
+ "6 ~> Alterar bicicletas.\n"
+ "0 ~> Sair.\n\n");
if (op == null) {
op = "0";
}
opcao = Integer.parseInt(op);
if (opcao == 1) {
CadastrarCliente();
} else if (opcao == 2) {
ConsultarCliente();
}
else if (opcao == 3) {
AlterarCliente();
}
else if (opcao == 4) {
Cadastrarbicicletas();
}
else if (opcao == 5) {
Consultarbicicletas();
}
else if (opcao == 6) {
Alterarbicicletas();
}
else if (opcao == 0 || opcao == 10) {
Sair();
} else {
JOptionPane.showMessageDialog(null, "Opção Inválida!!!");
}
} while (confirma != 0);
}
public static void CadastrarCliente() {
int QuantClient;
String Quant = JOptionPane
.showInputDialog("- CADASTRAR CLIENTE:\n\nQuantos Clientes Deseja Cadastrar: ");
if (Quant == null) {
Quant = "0";
}
QuantClient = Integer.parseInt(Quant);
clientes = new Cliente[QuantClient];
for (int i = 0; i < clientes.length; i++) {
clientes[i] = new Cliente();
}
for (int i = 0; i < QuantClient; i++) {
clientes[i]
.setNome(JOptionPane
.showInputDialog("- CADASTRAR CLIENTE:\n\nDigite o Nome do Cliente: ("
+ (i + 1) + "/" + QuantClient + ")"));
clientes[i]
.setcpf(JOptionPane
.showInputDialog("- CADASTRAR CLIENTE:\n\nDigite o CPF do Cliente: "
+ clientes[i].getNome()
+ "\nOBS: Use apenas números\n\n"));
clientes[i]
.setcodigo(JOptionPane
.showInputDialog("- CADASTRAR CLIENTE:\n\nDigite o código do cliente: "
+ clientes[i].getNome()
+ "\nOBS: Use apenas números\n\n"));
clientes[i]
.settelefone(JOptionPane
.showInputDialog("- CADASTRAR CLIENTE:\n\nDigite o telefone do cliente: "
+ clientes[i].getNome()
+ "\nOBS: DDD+NÚMERO\n\n"));
}
for (int i = 0; i < QuantClient; i++) {
JOptionPane.showMessageDialog(null, clientes[i].getNome());
}
JOptionPane.showMessageDialog(null, "Clientes Cadastrados!");
}
public static void ConsultarCliente() {
if (clientes == null) {
JOptionPane
.showMessageDialog(null,
"- CONSULTAR CLIENTE:\n\nVocê precisa cadastrar pelo menos 1 Cliente!\n\n");
} else {
int total = 1;
lista = "";
for (int i = 0; i < clientes.length; i++) {
lista += "Cliente : " + (i + 1) + "\n";
lista += "Nome : " + clientes[i].getNome() + "\n";
lista += "CPF : " + clientes[i].getcpf()+ "\n";
lista += "codigo : " + clientes[i].getcodigo()+ "\n";
lista += "TELEFONE : " + clientes[i].gettelefone()+ "\n";
lista += "\n\n";
total++;
}
JOptionPane.showMessageDialog(null, "- CONSULTAR CLIENTE:\n\n"
+ "Total de " + (total - 1) + " Clientes Cadastrados:\n\n"
+ lista);
}
}
public static void AlterarCliente() {
if (clientes == null) {
JOptionPane
.showMessageDialog(null,
"- ALTERAR CLIENTE:\n\nVocê precisa cadastrar pelo menos 1 Cliente!\n\n");
}
}
public static void Cadastrarbicicletas() {
int QuantCao;
String Quant = JOptionPane
.showInputDialog("- CADASTRAR BICICLETAS:\n\nQuantas bicicletas Deseja Cadastrar: ");
if (Quant == null) {
Quant = "0";
}
QuantCao = Integer.parseInt(Quant);
bicicletas = new Bicicleta[QuantCao];
for (int i = 0; i < bicicletas.length; i++) {
bicicletas[i] = new Bicicleta();
}
for (int i = 0; i < QuantCao; i++) {
bicicletas[i]
.setcodigoBicicleta (JOptionPane
.showInputDialog("- CADASTRAR BICICLETA:\n\nDigite o código da bicicleta: ("
+ (i + 1) + "/" + QuantCao + ")"));
bicicletas[i]
.setcor (JOptionPane
.showInputDialog("- CADASTRAR BICICLETA:\n\nDigite a cor da bicicleta: "
+ bicicletas[i].getcodigoBicicleta()
+ ""));
bicicletas[i]
.settipo (JOptionPane
.showInputDialog("- CADASTRAR BICICLETA:\n\nDigite o tipo da bicicleta: "
+ bicicletas[i].getcodigoBicicleta()
+ "\nDICA: marca e/ou modelo!\n\n"));
bicicletas[i]
.setmarcha (JOptionPane
.showInputDialog("- CADASTRAR BICICLETA:\n\nDigite o número de marchas: "
+ bicicletas[i].getcodigoBicicleta()
+ "\nDICA: Apenas números!!!\n\n"));
bicicletas[i]
.setvalorAluguel (JOptionPane
.showInputDialog("- CADASTRAR BICICLETA:\n\nDigite o valor do aluguel: "
+ bicicletas[i].getcodigoBicicleta()
+ "\nDICA: Apenas números!!!\n\n"));
}
for (int i = 0; i < QuantCao; i++) {
JOptionPane.showMessageDialog(null, bicicletas[i].getcodigoBicicleta());
}
JOptionPane.showMessageDialog(null, "Bicicleta Cadastrada!!!");
}
public static void Consultarbicicletas() {
if (bicicletas == null) {
JOptionPane
.showMessageDialog(null,
"- CONSULTAR BICIICLETA:\n\nVocê precisa cadastrar pelo menos 1 bicicleta!\n\n");
} else {
int total = 1;
lista = "";
for (int i = 0; i < bicicletas.length; i++) {
lista += "BICICLETA: " + (i + 1) + "\n";
lista += "CÓDIGO: " + bicicletas[i].getcodigoBicicleta() + "\n";
lista += "TIPO: " + bicicletas[i].gettipo()+ "\n";
lista += "MARCHAS: " + bicicletas[i].getmarcha()+ "\n";
lista += "VALOR ALUGUEL: " + bicicletas[i].getvalorAluguel()+ "\n";
lista += "\n\n";
total++;
}
JOptionPane.showMessageDialog(null, "- CONSULTAR BICICLETAS:\n\n"
+ "Total de " + (total - 1) + " bicicletas Cadastradas:\n\n"
+ lista);
}
}
public static void Alterarbicicletas(){
if (clientes == null) {
JOptionPane
.showMessageDialog(null,
"- ALTERAR BICICLETA:\n\nVocê precisa cadastrar pelo menos 1 bicicleta!\n\n");
}
}
public static void Sair() {
confirma = JOptionPane.showConfirmDialog(null,
"Quer mesmo Sair do Programa?");
}
}
package bicicletaria;
public class Bicicleta {
private String codigoBicicleta;
private String cor;
private String tipo;
private String marcha;
private String valorAluguel;
public String getcodigoBicicleta() {
return codigoBicicleta;
}
public void setcodigoBicicleta(String cod1) {
codigoBicicleta = cod1;
}
public String getcor() {
return cor;
}
public void setcor(String color) {
cor = color;
}
public String gettipo() {
return tipo;
}
public void settipo(String tipo1) {
tipo = tipo1;
}
public String getmarcha() {
return marcha;
}
public void setmarcha(String vel) {
marcha = vel;
}
public String getvalorAluguel() {
return valorAluguel;
}
public void setvalorAluguel(String val) {
valorAluguel = val;
}
package bicicletaria;
import java.util.ArrayList;
public class Cliente {
ArrayList contatos = new ArrayList();
public void cadastrarcontato(Cliente Cliente){
contatos.add(Cliente);
}
private String nome;
private String cpf;
private String codigo;
private String telefone;
public String getNome() {
return nome;
}
public void setNome(String name) {
nome = name;
}
public String getcpf() {
return cpf;
}
public void setcpf(String num) {
cpf = num;
}
public String getcodigo() {
return codigo;
}
public void setcodigo(String cod) {
codigo = cod;
}
public String gettelefone() {
return telefone;
}
public void settelefone(String tel) {
telefone = tel;
}
Fazer uma alteração é semelhante a fazer uma criação.
Com o seu código ficaria mais ou menos assim:
public void alterarBicicleta() {
consultarBiciletas(); // Vai mostrar toda as bicicletas.
// Escolher o número da bicicleta para alterar.
int bikeNum = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o número da bicicleta: ")) ;
String codigo = JOptionPane.showInputDialog(null, "Digite o novo código: ");
String tipo = JOptionPane.showInputDialog(null, "Digite o novo tipo: ");
String marchas = JOptionPane.showInputDialog(null, "Digite a nova quantidade de marchas: ");
String cor = JOptionPane.showInputDialog(null, "Digite a nova cor ");
bicicletas[bikeNum].setCodigo(codigo);
bicicletas[bikeNum].setTipo(tipo);
bicicletas[bikeNum].setMarchas(marchas);
bicicletas[bikeNum].setCor(cor);
JOptionPane.showMessageDialog(null, "Bicicleta " + (numBike + 1) + " foi alterada!");
}
Tenta usar esse código como base, porquê eu fiz ele sem IDE, não testei nem nada, é apenas para de mostrar como fazer
os dados vem da classe cliente para a principal, quando mudo de String para int na classe aparece o erro aqui nessa parte da classe principal :
/*
clientes[i] .setcpf(JOptionPane
.showInputDialog("- CADASTRAR CLIENTE:\n\nDigite o CPF do Cliente: "
+ clientes[i].getNome()
+ “\nOBS: Use apenas números\n\n”));