Carregar elementos da LinkedList para ComboBox

5 respostas
WashingtonBotelho

Bem pessoal, eu tenho uma classe ControleCarro que me retorna uma LinkedLista e este retorno será usado em uma Tela, pois vou dar um get(i).getNome() em cada objeto Carro contindo na LinkedList listaCarro e na Tela já vou adicionando em uma comboBox.

O problema é que não estou conseguindo acessar o método getNome() contindo em um Modelo, mesmo ele estando public.

// Modelo.Carro public String getNome() { return nome; }

// Controle.ControleCarro // É aqui que esta a private LinkedList<Carro> listaCarro = new LinkedList<Carro>();
public LinkedList getListaCarro() {
  return listaCarro;
}
// O início e construtor da minha Classe Visual FConsCarro.

public class FConsCarro extends javax.swing.JFrame {
  ControleCarro controlCarro = new ControleCarro();

  public FConsCarro() {    
    initComponents();

  for(int i = 0; i < controlCarro.getListaCarro().size(); i++)
    nomeConsCombo.addItem(controlCarro.getListaCarro().get(i).getNome()); // .getNome() não esta sendo localizado.
  }

A minha intenção é carregar todos nomes de carros já contidos na LinkedList, assim o usuários já sabe quais carros ele tem disponíveis para a pesquisa.

Outro jeito eu consegui acessar o getNome() antes no método ControleCarro mesmo e retornava, mas mesmo assim nada foi adicionado na ComboBox.

public String getListaCarroNome(int i) {
  return listaCarro.get(i).getNome();
}
for(int i = 0; i < controlCarro.getListaCarro().size(); i++)
  nomeConsCombo.addItem(controlCarro.getListaCarroNome(i));
}

Este último não deu nenhum erro, mas também não adicinou nada… =/

5 Respostas

kdoigor

usa o cast…

nomeConsCombo.addItem( (String) controlCarro.getListaCarroNome(i) );

fabiojwalter

Primeiro acesse o seu modelo (Bean) Carro e sobrescreva o metodo toString()

mais ou menos assim…

@Override
public String toString() {
      return this.getNome();
}

Depois para adicionar os elemento ao comboBox faça assim

public class......

private Carro carro = new Carro();


for (int i = 0; i < linkedLista.size(); i++) {
            this.carro = (Funcionario) linkedLista.get(i);
            jComboboxCarros.addItem(this.carro);
}

Depois da chamada do metodo acima serão adicionados os nomes dos carros ao seu comboBox e voce poderá até eliminar o metodo em que voce passa a posição para entao retornar o nome do carro.

Esse cara ai embaixo voce poderá eliminar de seu código

public String getListaCarroNome(int i) {

return listaCarro.get(i).getNome();

}

Ok,

Qualquer coisa poste um novo trâmite

fabiojwalter

Só corrigindo minha mensagem acima onde eu dei um cast para (Funcionario) na verdade é Carro. Esqueci de alterar.

Mas tambem voce pode utilizar um elemento da JDK 1.5 ou 1.6 em que voce “TIPA” diz quais tipos de elementos a sua lista conterá

LinkedList lista;

WashingtonBotelho

kdoigor O Cast não funcionou não, e não sei se era isso, pois o return já é do tipo String.

fabiojwalter não entendi direito onde colocarei estas classes, mas eu coloquei a ToString na classe Modelo.Carro e o outro código no FConsCarro que é a Tela de consulta.
E mesmo assim não deu certo não, apesar de ter compilado.

Eu até deixei seu código lá no projeto que é pequenininho mesmo e como já estou o dia todo parado só por conta disto eu vou te pedir se não te atrapalhar em só dar uma olhadinha no projeto, e como é de iniciante não tem nada complicado. Se der vai me ajudar muito, pois tenho de entregar o trabalho Quinta. :S

http://www.tilt-team.com/down/outros/washingtonbotelhotrabalhojava.rar

WashingtonBotelho

Bem galera, eu desistir de carragar as possibilidades para o usuário na ComboBox e troquei-la por um TextField mesmo.

Vou deixando meu projeto ai, caso alguém tenha interesse de ajudar, com algumas regras de OO sempre estará neste endereço ai.

Abraço e valeu aos que tentaram ajudar…

Criado 18 de dezembro de 2007
Ultima resposta 19 de dez. de 2007
Respostas 5
Participantes 3