Olá pessoal!

10 respostas
Emerzoom

É um prazer fazer parte desse Grupo tb,que descobri através do Portal Java,que é muito bom…tenho uma duvida que encontrei em um programinha que fiz…

Meu SO é Win 2000 e XP pro…tenho instalados o JDK e o JRE 1.5.0_01,todos bem configurados e funcionando e uso o IDE Eclipse 2.1.1,tb devidamente configurado…

Meu problema é com a compilação de um arquivo.class que segue abaixo:

import java.awt.*;
import java.applet.*;
/*
 * Created on 31/01/2005
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */

/**
 * @author Informatica-51
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class apBtn1 extends Applet {
	
	Panel p1,p2,p3;
	TextField t1,t2;
	Button b1;
	
	public apBtn1() {
			
	setLayout(new BorderLayout());
			
	p1 = new Panel();
	add("North",p1);
	t1 = new TextField(10);
	p1.add(t1);
				
		p2 = new Panel();
		add("Center",p2);
		t2 = new TextField(10);
		p2.add(t2);
					
	p3 = new Panel();
	add("South",p3);
	b1 = new Button("Transportar");
	p3.add(b1);
			
			
		}
		
          public boolean action(Event e,Object o) {
		
	if("Transportar".equals(o)) {
				
		t2.setText(t1.getText());
				
			}
			
	return true;
			
		}

}

Qdo mando compilar,ele me pede pra compilar com:

javac -Xlint apBtn1.class

E aparece a informação que diz:

[color=red]Aviso:O método apBtn1.action(Event, Object) substitui um método reprovado de Component apBtn1.java Teste2 linha 44[/color]

O que quer dizer e como resolvo isso?

PS-O programa roda,debuga e funciona normalmente…

10 Respostas

jvictorcf

Cara, seja bem vindo

Isso quer dizer que este metodo é deprecated

Deprecated quer dizer que existem novos métodos mais eficazes que este.

Dá uma lida na API

Lá eles indicam o método mais apropriado.

Obs.: Ele funciona normalmente porque esse metodo apesar de ser deprecated, ainda existe e funciona. O java só te avisa.

:wink:

Emerzoom

Pô amigo,muito obrigado por responder e me receber…

No caso da API,eu até dei uma olhada,mas como só tenho 2 meses de uso de Java,não entendi muito bem como utilizar um outro método que substitua o antigo…tem alguma idéia de como eu posso fazê-lo?

_fs

Bem vindo!

http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Component.html#action(java.awt.Event,%20java.lang.Object)
Aqui ele diz que ao invés de registrar eventos desta maneira, deveria usar ActionListeners.

Google it!

D

Faça seu applet implementar a interface java.awt.event.ActionListener.
Adicione no seu construtor:

b1.addActionListener(this);

Escreva o método do ActionListener (abaixo exemplo equivalente ao seu):

public void actionPerformed(java.awt.event.ActionEvent e) { if (e.getSource() == b1) { t2.setText(t1.getText()); } }

De forma resumida, apenas o caminho das pedras. :wink:

Emerzoom

Eu até fui lá,mas continuo não entendendo como vou mudar isso…será que vc não tem algum exemplo pra eu me embasar???

Obrigado pelas boas vindas!!!

Emerzoom

Olá Dharis…tudo bom?

Eu tentei fazer o que vc me indicou,mas não está dando certo talvez por eu não saber como fazer direito…sou um pouco novo nisso…hehe

Agora o código tá assim:

import java.applet.*;
import java.awt.*;
import java.awt.event.ActionListener.*;
/*
 * apBtn1.java
 *
 * Created on 2 de Fevereiro de 2005, 14:48
 */

/**
 *
 * @author Administrador
 */
public class apBtn1 extends Applet {
 
    Panel p1,p2,p3;
    TextField t1,t2;
    Button b1;
    
    public void apBtn1() {
       
        setLayout(new BorderLayout());
        
            p1 = new Panel();
            add("North",p1);
            t1 = new TextField(10);
            p1.add(t1);
            
                p2 = new Panel();
                add("Center",p2);
                t2 = new TextField(10);
                p2.add(t2);
                
          p3 = new Panel();
          add("South",p3);
          b1 = new Button("Transportar");
          b1.addActionListener(this);//nessa linha(37) tem algum problema!!!
          p3.add(b1);
        
    }
    
        public void actionPerformed(java.awt.event.ActionEvent e) {
            
            if(e.getSource() == b1) {
                
                t2.setText(t1.getText());
                
            }
            
        }
    
}

a mensagem é:

[color=red]C:\Teste3\src\apBtn1.java:37: addActionListener(java.awt.event.ActionListener) in java.awt.Button cannot be applied to (apBtn1)

b1.addActionListener(this);

1 error[/color]

O que fazer???

Obrigado…

D

Acho que você esqueceu de dizer que implementa ActionListener:

public class apBtn1 extends Applet implements ActionListener {
D

Ah! E troque

import java.awt.event.ActionListener.*;

Por

import java.awt.event.ActionListener;
Emerzoom

Perfeito!!!

Tudo deu certo!!!

Não sei se tu és ome ou muié,mas o que vale mesmo é a sua intenção que foi muito boa e me ajudou muito…a propósito,como eu faço entender bem esse tipo de implementação de API???

Emerzoom

Amigos,acho que já descobri como resolver o problema dos arquivos [color=red]deprecated[/color]…entrei no site da sun,procurei a documentação do API e vi algumas coisas interessantes,porém,ainda tenho dúvidas de como utilizar…já midifiquei alguns programinhas prontos que eu tinha…alguns deram certo outros ainda não consegui trocar os códigos…deem uma olhada:

import java.applet.*;
import java.awt.*;
import java.awt.event.ActionListener;
/*
 * apBtn2.java
 *
 * Created on 1 de Fevereiro de 2005, 15:38
 */

/**
 *
 * @author Administrador
 */
public class apBtn2 extends Applet implements ActionListener {
    
    Panel p1,p2;
    Button b1,b2;
    Frame f1;
    
        public apBtn2() {
        
            setLayout(new BorderLayout());
            
                p1 = new Panel();
                add("North",p1);
                b1 = new Button("Mostra");
                b1.addActionListener(this);
                p1.add(b1);
                
                    p2 = new Panel();
                    add("Center",p2);
                    b2 = new Button("Apaga");
                    b2.addActionListener(this);
                    p2.add(b2);
                    
\*Como podem perceber, mudou muita coisa no meu código...agora eu preciso de uma idéia de como fazer isso no Frame...*\

                    f1 = new Frame();//daqui pra frente tá ok,mas a seguir...
                    f1.setTitle("Mostrando o Frame...");//começa o deprecated...
        
    }
    
        public void actionPerformed(java.awt.event.ActionEvent e) {
            
            if(e.getSource() == b1) {
                
                f1.reshape(250,250,250,250);
                f1.show();
                
            }
            
            if(e.getSource() == b2) {
                
                f1.hide();
                
            }
      
            
        }
        
}

Parecem coisas fáceis de resolver,mas eu ainda não consegui,depois de horas tentando…mas vcs não vão deixar eu desistir,vão???hehe…sei que não…mais uma vez,por favor me deem uma força…

Obrigado…

Criado 2 de fevereiro de 2005
Ultima resposta 2 de fev. de 2005
Respostas 10
Participantes 4