Esqueçam a minha pergunta acima, o que eu queria era mais facil do que eu imaginava. Não e necessario sobrescrever o metodo toString(). Basta usar o metodo get do proprio ArrayList. Me senti uma anta mas blz.
Mas surgiu uma outra duvida:
Eu tenho uma classe estado que possui um metodo listar, onde ela adiciona todos os estados do Brasil em um ArrayList.
Eu quero popular um JComboBox com esta classe. Para tal eu fiz o seguinte procedimento
JComboBox cbxEstado = new JComboBox();
listaEstados est = new listaEstados();
for (int i = 0; i < est.lista().size(); i++){
cbxEstado.addItem(est.lista().get(i));
}
Me apareceu o seguinte erro quando tentei executar a aplicacao
Exception in thread “main” java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2760)
at java.util.Arrays.copyOf(Arrays.java:2734)
at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
at java.util.ArrayList.add(ArrayList.java:351)
at listaEstados.lista(listaEstados.java:14)
at frmNf.(frmNf.java:36)
at teste.main(teste.java:25)
Ai eu fiquei pensando, e modifiquei o meu for. ao inves de chamar o metodo direto eu o ocoloquei em uma variavel e depois chamei a variavel
JComboBox cbxEstado = new JComboBox();
listaEstados est = new listaEstados();
int j = est.lista().size();
for (int i = 0; i < j; i++){
cbxEstado.addItem(est.lista().get(i));
}
E o negocio deu certo.
Agora o que eu gostaria de saber e porque ele so funciona dessa forma? Eu fiz algo de errado na primeira opção?