[RESOLVIDO] Problemas ao consultar um ArrayList

4 respostas
D

Olá, estou com um pequeno problema no meu código. Eu criei vários arrays, um para cada variável do meu cadastro. Depois adiciono o conteúdo das variávieis pra os Arrays. Até ai tudo bem. Mas na hora de consultar o indice de um elemento, sempre aparece o valor "-1", e da esse erro ArrayIndexOutOfBoundsException. Alguém sabe no que eu estou errando?

Aqui vai os trechos do meu código

Criação dos Arrays
List<String> numPlaca = new ArrayList<String>();
	List<Integer> marca = new ArrayList<Integer>();
	List<String> modelo = new ArrayList<String>();
	List<Double> fatorEstacionamento = new ArrayList<Double>();
	List<String> horaEntrada = new ArrayList<String>();
Ação do botão Dar Entrada
public JButton getJbntDarEntrada(){
		jbntDarEntrada.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
			
			try {
				v.setPlaca(jtxtPlaca.getText());
				v.setModelo(jtxtMarca.getText());
				v.setHoraEntrada(jtxtHoraEntrada.getText());
				v.setMarca(jcmbVeiculos.getSelectedIndex());
								
				darEntrada(v);
				System.out.println("Entrada com sucesso!");
				
			} catch (Exception e) {
				// TODO: handle exception
				System.out.println(e);
			}
				
						}
		});
		return jbntDarEntrada;
	}
public void darEntrada(Veiculo veiculo){
	try {
		numPlaca.add(v.getPlaca());
		marca.add(v.getMarca());
		modelo.add(v.getModelo());
		horaEntrada.add(v.getHoraEntrada());
		System.out.println("Entrada dos valores no Array com sucesso!");
		
	} catch (Exception e) {
		// TODO: handle exception
		System.out.println("Falha ao adicionar valores ao Array");
	}
public JButton getJbntConsultar(){
		jbntConsultar.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				try {
					int indiceDe = numPlaca.indexOf(jtxtPlaca);
					jtxtHoraEntrada.setText(horaEntrada.get(indiceDe));
					jtxtMarca.setText(modelo.get(indiceDe));
					jcmbVeiculos.setSelectedIndex(marca.get(indiceDe));
					System.out.println(indiceDe);
					
				} catch (Exception e) {
					// TODO: handle exception
					System.out.println(e);
				}
				
				
				
				
			}
		});
		return jbntConsultar;
	}

Desculpem-me se eu coloquei esse post no lugar errado!

4 Respostas

GuilhermeKFreitas

Bom, aparentemente, dentro do método getJbntConsultar(), quando você chama numPlaca.indexOf(jtxtPlaca),
ele não encontra o seu objeto no ArrayList. (por isso o retorno -1).

Uma pergunta: Esse jTxtPlaca é um JTextField, certo?

Então, no caso, ao executar o indexOf(), você não deveria passar o texto do JTextField, ao invés dele próprio?

Tente substituir a linha por:

numPlaca.indexOf(jtxtPlaca.getText());
D

Fiz o que você disse e funcionou direitinho!!
Isso mostra que um detalhe faz toda a diferença!
Muito obrigado!!

Lucas_Abbatepaolo

Se solucionou seu problema, por favor coloque seu post como [RESOLVIDO]

GuilhermeKFreitas

Ahh, blz então!
Pois é, a gente tem que ficar atento aos detalhes :slight_smile:
flws…

Criado 25 de novembro de 2011
Ultima resposta 25 de nov. de 2011
Respostas 4
Participantes 3