Plz me digam no que estou errando

9 respostas
U

Tenho uma classe de alunos e uma principal, na principal coloquei esse
codigo… mas isso ai na hora de compilar da 14 erros!..
no que eu estou errando?

MouseListener verif = new MouseAdapter(){
			public void MouseClicked(MouseEvent e){
				alun.nome=nome.getText();
				alun.endereco=endereco.getText();
				alun.telefone=Integer.parseInt(telefone.getText());
				alun.idade=Integer.parseInt(idade.getText());
				alun.setIdade(alun.idade);
				alun.idFaze();
				Lresult.setText(alun.getIdade());
			}
		};
		verificar.addMouseListener(verif);

valeu!

9 Respostas

S

Era mais fácil se postasses os erros de compilação que são gerados.

O erro pode estar aqui:

alun.nome=nome.getText();

E em todas as linhas semelhantes. Isto porque estás a referênciar o “nome” como objecto da classe aluno (ou atributo do objecto aluno) e ao mesmo tempo é um componente de texto, isso poderá eventualmente gerar algum conflito.

Uma sugestão é mudares o nome da variável nome:

alun.name=nome.getText();
U
mudei os nomes das variaveis

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:75: local variable alun is accessed from within inner class; needs to be declared final

alun.name=nome.getText();

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:75: local variable nome is accessed from within inner class; needs to be declared final

alun.name=nome.getText();

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:76: local variable alun is accessed from within inner class; needs to be declared final

alun.end=endereco.getText();

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:76: local variable endereco is accessed from within inner class; needs to be declared final

alun.end=endereco.getText();

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:77: local variable alun is accessed from within inner class; needs to be declared final

alun.fone=Integer.parseInt(telefone.getText());

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:77: local variable telefone is accessed from within inner class; needs to be declared final

alun.fone=Integer.parseInt(telefone.getText());

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:78: local variable alun is accessed from within inner class; needs to be declared final

alun.id=Integer.parseInt(idade.getText());

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:78: local variable idade is accessed from within inner class; needs to be declared final

alun.id=Integer.parseInt(idade.getText());

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:79: local variable alun is accessed from within inner class; needs to be declared final

alun.setIdade(alun.id);

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:79: local variable alun is accessed from within inner class; needs to be declared final

alun.setIdade(alun.id);

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:80: local variable alun is accessed from within inner class; needs to be declared final

alun.idFaze();

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:81: local variable alun is accessed from within inner class; needs to be declared final

Lresult.setText(alun.getIdade());

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:81: cannot find symbol

symbol  : method getIdade()

location: class aluno

Lresult.setText(alun.getIdade());

^

C:\Documents and Settings\Mateus\Meus documentos\Programacao\JAVA\My Programs\alunoPri.java:81: local variable Lresult is accessed from within inner class; needs to be declared final

Lresult.setText(alun.getIdade());

^

14 errors

eita! quanto erro :roll:

S

Também já tive um erro semelhante e consegui resolver, não se sei explicar bem porque ocorre, posta o código e eu digo-te o que deves fazer.

S

Não é tanto erro, é um erro so. alun tem que ser final. Só isso.

U

final?
Minha logica provavelmente esta errada… iniciante é fogo :cry:

public class aluno {

	public String name="";
	public String end="";
	public int fone=0;
	public int id=0;
	public String result="";
	
    public void idFaze() {
    	if (id<12){
    		result="Criança";
    	}
    	if (id>=12 && id<18){
    		result="Adolescente";
    	}
    	if (id>=18){
    		result="Adulto";
    	}
    }
    
    public String getResult(){
    	return result;
    }
    
    public void setIdade(int id){
    	this.id=id;
    }
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class alunoPri extends JFrame{
	
	public alunoPri(){
		JTextField nome = new JTextField();
		JTextField endereco = new JTextField();
		JTextField telefone = new JTextField();
		JTextField idade = new JTextField();
		
		JLabel Lnome = new JLabel("Nome:");
		JLabel Lendereco = new JLabel("Endereço:");
		JLabel Ltelefone = new JLabel("Telefone:");
		JLabel Lidade = new JLabel("Idade:");
		JLabel Lresult = new JLabel("Classificação:");
		
		JButton verificar = new JButton("Verificar");
		JButton limpar = new JButton("Limpar:");
		
		setLayout(null);
		
		Lnome.setSize(60,20);
		Lnome.setLocation(5,5);
		getContentPane().add(Lnome);
		
		Lendereco.setSize(60,20);
		Lendereco.setLocation(5,25);
		getContentPane().add(Lendereco);
		
		Ltelefone.setSize(60,20);
		Ltelefone.setLocation(5,45);
		getContentPane().add(Ltelefone);
		
		Lidade.setSize(60,20);
		Lidade.setLocation(5,65);
		getContentPane().add(Lidade);
		
		nome.setSize(100,20);
		nome.setLocation(65,5);
		getContentPane().add(nome);
		
		endereco.setSize(100,20);
		endereco.setLocation(65,25);
		getContentPane().add(endereco);
		
		telefone.setSize(100,20);
		telefone.setLocation(65,45);
		getContentPane().add(telefone);
		
		idade.setSize(100,20);
		idade.setLocation(65,65);
		getContentPane().add(idade);
		
		verificar.setSize(160,20);
		verificar.setLocation(5,85);
		getContentPane().add(verificar);
		
		limpar.setSize(160,20);
		limpar.setLocation(5,105);
		getContentPane().add(limpar);
		
		Lresult.setSize(60,20);
		Lresult.setLocation(5,135);
		getContentPane().add(Lresult);
		
		//-------------------------------------------------
		
		aluno alun=new aluno();
		
		MouseListener verif = new MouseAdapter(){
			public void MouseClicked(MouseEvent e){
				alun.name=nome.getText();
				alun.end=endereco.getText();
				alun.fone=Integer.parseInt(telefone.getText());
				alun.id=Integer.parseInt(idade.getText());
				alun.setIdade(alun.id);
				alun.idFaze();
				Lresult.setText(alun.getIdade());
			}
		};
		verificar.addMouseListener(verif);
		
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack();
		setSize(640,480);
		setVisible(true);
	}

	
	public static void main(String args[]){
		new alunoPri();
	}
}

espero que possam me ajudar…
t+

S

Tive a analisar o código e encontrei várias anómalias na sua estrutura.

Corrigi parcialmente os erros, vê se percebes as minhas correções, se não perceberes avisa.

Ficheiro alunoPri.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class alunoPri extends JFrame{
  
static String var1,var2;
static int var3,var4;

public static aluno alun = new aluno();
 
     static JTextField nome = new JTextField();
      static JTextField endereco = new JTextField();
      static JTextField telefone = new JTextField();
      static JTextField idade = new JTextField();
      
     static  JLabel Lnome = new JLabel("Nome:");
      static JLabel Lendereco = new JLabel("EndereÁo:");
      static JLabel Ltelefone = new JLabel("Telefone:");
      static JLabel Lidade = new JLabel("Idade:");
      static JLabel Lresult = new JLabel("ClassificaÁ„o:");
      
     static  JButton verificar = new JButton("Verificar");
      static JButton limpar = new JButton("Limpar:");

     public alunoPri() {
 
      setLayout(null);
      
      Lnome.setSize(60,20);
      Lnome.setLocation(5,5);
      getContentPane().add(Lnome);
      
      Lendereco.setSize(60,20);
      Lendereco.setLocation(5,25);
      getContentPane().add(Lendereco);
      
      Ltelefone.setSize(60,20);
      Ltelefone.setLocation(5,45);
      getContentPane().add(Ltelefone);
      
      Lidade.setSize(60,20);
      Lidade.setLocation(5,65);
      getContentPane().add(Lidade);
      
      nome.setSize(100,20);
      nome.setLocation(65,5);
      getContentPane().add(nome);
      
      endereco.setSize(100,20);
      endereco.setLocation(65,25);
      getContentPane().add(endereco);
      
      telefone.setSize(100,20);
      telefone.setLocation(65,45);
      getContentPane().add(telefone);
      
      idade.setSize(100,20);
      idade.setLocation(65,65);
      getContentPane().add(idade);
      
      verificar.setSize(160,20);
      verificar.setLocation(5,85);
      getContentPane().add(verificar);
      
      limpar.setSize(160,20);
      limpar.setLocation(5,105);
      getContentPane().add(limpar);
      
      Lresult.setSize(60,20);
      Lresult.setLocation(5,135);
      getContentPane().add(Lresult);
      
      //-------------------------------------------------
      
      
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      pack();
      setSize(640,480);
      setVisible(true);
   }

   
   public static void main(String args[]){
      new alunoPri();

 MouseListener verif = new MouseAdapter(){
         public void mouseClicked(MouseEvent e){
            var1=nome.getText();
            var2=endereco.getText();
            var3=Integer.parseInt(telefone.getText());
            var4=Integer.parseInt(idade.getText());
            alun.setIdade(var4);
            alun.idFaze();
            String s =""+alun.getIdade();
            Lresult.setText(s);
        }
      };
      verificar.addMouseListener(verif);
}
}
ficheiro aluno.java
public class aluno {

   public static String name="";
   public static String end="";
   public static int fone=0;
   public static int id=0;
   public static String result="";

    public void idFaze() {
       if (id<12){
          result="Criança";
       }
       if (id>=12 && id<18){
          result="Adolescente";
       }
       if (id>=18){
          result="Adulto";
       }
    }

    public String getResult(){
       return result;
    }

    public void setIdade(int id){
       this.id=id;
    }

    public static int getIdade(){
    return id;
}
}
Neste ficheiro faltava o método getIdade e as variáveis tinham de ser declaradas como static.
S

“Uchiha_Itachi”:
final?
Minha logica provavelmente esta errada… iniciante é fogo :cry:

//-------------------------------------------------
		
		final aluno alun=new aluno();  // <-- aqui
		
		MouseListener verif = new MouseAdapter(){
			public void MouseClicked(MouseEvent e){
				alun.name=nome.getText();
				alun.end=endereco.getText();
				alun.fone=Integer.parseInt(telefone.getText());
				alun.id=Integer.parseInt(idade.getText());
				alun.setIdade(alun.id);
				alun.idFaze();
				Lresult.setText(alun.getIdade());
			}
		};
		verificar.addMouseListener(verif);

A variável alun tem que ser declarada final para que ela possa ser usada dentro de uma inner class. é só colocar final atrás da declaração da variável.
como demonstrado na linha marcada com “<–aqui”

U

valeu!.. percei as mudanças, mas nao entendi o porque delas!.. :???:

S

De facto bastava colocar a palavra final atrás das variáveis que necessitassem. Não era preciso fazer as modificações que eu fiz, de qualquer forma resulta pelos dois lados :smiley: .

Criado 20 de fevereiro de 2007
Ultima resposta 20 de fev. de 2007
Respostas 9
Participantes 3