Dúvida em JMenu

4 respostas
J

Boa noite, estou com a seguinte dificuldade, deve ser aglo simples, mas to engatinhando ainda na interface gráfica…

Ja dei uma olhada deste link, mas não consegui sanar a dúvida, não sei se porque meu inglês não é muito bom e não encontrei ou se realmente não tem isso aqui…: http://java.sun.com/docs/books/tutorial/uiswing/components/menu.html

Bom vamos a minha dúvida:

Tenho uma classe Transporte e duas classes que extends a Transporte, Carro e Onibus, funciona se eu digitar na minha aplicação direto Transporte t1 = new Carro(cor, 100, .....); Ou

Transporte t1 = new Onibus(cor, 200, .....);.

Mas eu não tenho que fazer isso manual, tenho que ter um JMenu onde escolho carro ou onibus, e automaticamente instancia na execução o correto… Tentei isso:

menuEscolha.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                t1 = new Carro(cor, 100, outros atributos...); // Tem declarado já o private Transporte t1 no início da classe...
                painel.setTransporte(t1);

                JOptionPane.showMessageDialog(null, "Escolhido Carro");
            }
        });
menuEscolha.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                t1 = new Onibus(cor, 200, outros atributos...); // Tem declarado já o private Transporte t1 no início da classe...
                painel.setTransporte(t1);

                JOptionPane.showMessageDialog(null, "Escolhido Onibus");
            }
        });

Mas da erro(diz que não encontra o construtor que ta lá dentro… ), acho que não funcionou porque o que ta dentro do actionListener só existe alí e não da pra usar algo “de fora”… Mas não sei como fazer isso funcionar da maneira que preciso…

Agradeço se alguém puder auxiliar.

Grato,
Jeferson Neves

4 Respostas

Giovanni_Ritchie

Construtor de que classe é que não é encontrado? Poste aqui a msg de erro.
Abraço

J

Giovanni Ritchie:
Construtor de que classe é que não é encontrado? Poste aqui a msg de erro.
Abraço

Boa noite,

O erro é: Cannot find symbol
symbol: constructor Carro(atributos…)
location: class Carro

Só que a classe Carro extends a Transporte(não sei se tem algo a ver…???) o conteudo do construtor dela na verdade é super(atributos…);

Tenho dentro de meu pacote, junto com outras classe, a classe Transporte.java, Carro.java(que extends Transporte) e Onibus.java(que extends Transporte tb), acho que esse erro pode ser por que mesmo tendo uma variável private Transporte trans; na classe da aplicação(onde tenho que chamar do menu ou um carro ou um onibus) não posso instanciar um Carro ou Onibus dentro de do actionEvent do menu, to meio perdido, se puderem me auxiliar agradeço.

Grato
Jeferson Neves

Giovanni_Ritchie

Posta aí a definição das 3 classes

J
Giovanni Ritchie:
Posta aí a definição das 3 classes

Pessoal,

Não estou com o código todo aqui, só chego em casa bem tarde...

Só queria saber como instanciar algo alí dentro(mais especificamente as linhas 4 e 5):
menuEscolha.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                carro = new Carro(cor, 700, .....);     // essa linha que avisa cannot find symbol constructor Carro(....)
                painel.setCarro(carro);

                JOptionPane.showMessageDialog(null, "Um carro selecionado!");
            }
        });

Grato pela atenção,
Jeferson

Criado 22 de junho de 2010
Ultima resposta 23 de jun. de 2010
Respostas 4
Participantes 2