Boa noite, estou tendo este problema e não estou conseguindo, eu possou a classe Voo aonde tenho esse metodo
private ArrayList<Lotacao> lotacoes = new ArrayList ();
class Lotacao {
public int qtde;
public Classificacao classificacao;
}
public List <Lotacao> getLotacoes() {
return this.lotacoes;
}
public void addLotacao(Classificacao classificacao, int totalPassageiros){
Lotacao lotacao = new Lotacao ();
lotacao.qtde= totalPassageiros;
lotacao.classificacao = classificacao;
lotacoes.add(lotacao);
}
O meu problema é o seguinte, quando eu tenho 2 informações adicionadas no array eu não consigo listar ela, corretamente, meu programa roda, eu adiciono mais na hora de listar da problema.
Na minha classe Cliente eu não tenho esse problema pois tenho so uma informação
menuListaCliente.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
listarCliente();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void listarCliente() throws Exception{
JPanel painelAba = new JPanel(new FlowLayout());
List <Cliente> clientes = controlador.getClientes();
Tela tela = new Tela ("Modulo lista de clientes");
tela.setVisible(true);
desktop.add(tela);
for(int x=0; x < clientes.size(); x++){
JLabel listcliente = new JLabel(clientes.get(x).getNome());
painelAba.add(listcliente);
tela.add(painelAba);
}
}
});
Essa decima roda tudo blz o código que estou tendo problema é esse:
private void listarLotacao () throws Exception {
JPanel painelAba = new JPanel (new FlowLayout());
[b]da erro [/b] List <Lotacao> lotacoes = controladorv.getLotacoes();
Tela tela = new Tela ("Modulo lista de lotacoes");
tela.setVisible(true);
desktop.add(tela);
for(int x=0; x < lotacoes.size(); x++){
JLabel listLotacao = new JLabel ();
JLabel listLotacao = new JLabel(lotacoes.get(x).getQtde());
painelAba.add(listLotacao);
tela.add(painelAba);
Amigo, já que você é iniciante no fórum, vai duas dicas: sempre pesquise antes de abrir um tópico, pois já tem muito material no fórum; e quando for abrir um tópico, sempre utilize as tags do fórum. Ninguém costuma ler posts sem as formatações. Então leia esse tópico, formate seu post que vai ser mais fácil pra gente ler e te ajudar.
Hmm… vc poderia dar mais detalhes neh ??? Tipo, que erro que ocorre ?? É um ClassCastExcetion ? Cadê o código do métodos getLotacoes() ?? Ele ta devolvendo um lista de Lotacao mesmo ??? Se sim, todos os objetos adicionados nela são mesmo do tipo Lotacao ??
O erro eh nessa linha mesmo, ou ta rolando algum erro dentro do método getLotacoes ??
Padree, respondendo as suas perguntas primeiro…
ele não gera erro ao copilar,ela não é um ClassCastExcetion, ela devolte uma lista do tipo Lotacação com 2 dados qtde e classificacacao um dado é do tipo Int outro de Classificacao conforme vou por abaixo
1. private ArrayList<Lotacao> lotacoes = new ArrayList ();
2. class Lotacao {
3. public int qtde;
4. public Classificacao classificacao;
5. }
6.
7. public List <Lotacao> getLotacoes() {
8. return this.lotacoes;
9. }
10. public void addLotacao(Classificacao classificacao, int totalPassageiros){
11. Lotacao lotacao = new Lotacao ();
12. lotacao.qtde= totalPassageiros;
13. lotacao.classificacao = classificacao;
14. lotacoes.add(lotacao);
15. }
O meu grande problema é o seguinte ela adiciona certo porém na hora deu eu mostras as informações na tela ela da erro pois ela contem 2 dados postei encima um metodo ListCliente esse esta funcionando bem com a mesma estrutura porem so com 1 dado(nome) adicionado no cliente eu mando setar o unico dado que seria
JLabel listcliente = new JLabel(clientes.get(x).getNome
Agora no Lotação ele nem na auto-sujestão dele ele aparece para setar 2 dados,(Classificacao classificacao, int totalPassageiros)
eu precisava listar esses dados meu problema seria esse como faço pra setar 2 ou + dados de tipos diferentes informados pelo usuário.
Obs: o código da minha ListCliente se quizer dar uma olhada como estou fazendo nesse ( esta dando certo)
menuListaCliente.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
listarCliente();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void listarCliente() throws Exception{
JPanel painelAba = new JPanel(new FlowLayout());
List <Cliente> clientes = controlador.getClientes();
Tela tela = new Tela ("Modulo lista de clientes");
tela.setVisible(true);
desktop.add(tela);
for(int x=0; x < clientes.size(); x++){
JLabel listcliente = new JLabel(clientes.get(x).getNome());
painelAba.add(listcliente);
tela.add(painelAba);
}
}
});
Agora no Lotação ele nem na auto-sujestão, dele deveria aparece para setar 2 dados,(Classificacao classificacao, int totalPassageiros)
eu precisava listar esses dados meu problema seria esse como faço pra setar 2 ou + dados de tipos diferentes informados pelo usuário.
Obs: o código da minha ListCliente se quizer dar uma olhada como estou fazendo nesse ( esta dando certo)