[RESOLVIDO] Applet ou JApplet?

3 respostas
T

Eu estou aprendendo sobre Applet e fiz um código que mostra a coordenada do click, porém esse código não funciona em um JApplet...

alguém saberia o porquê?

Applet
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pick;

import java.applet.Applet;
import java.awt.*;


/**
 *
 * @author Ton
 */
public class NewJApplet extends Applet {
    Point P;

    @Override
    public void init()
    {
        P = new Point(100, 100);
    }

    public boolean mouseDown(Event evt, int x, int y){
        P.x = x;
        P.y = y;
        repaint();
        return true;
    }
    public void paint (Graphics g){
      g.drawString("x:" + P.x + "  y:" + P.y, P.x, P.y);
    }
}
JApplet
package pick;

import java.applet.Applet;
import java.awt.*;
import javax.swing.JApplet;


/**
 *
 * @author Ton
 */
public class NewJApplet extends JApplet {
    Point P;

    @Override
    public void init()
    {
        P = new Point(100, 100);
    }

    public boolean mouseDown(Event evt, int x, int y){
        P.x = x;
        P.y = y;
        repaint();
        return true;
    }
    public void paint (Graphics g){
      g.drawString("x:" + P.x + "  y:" + P.y, P.x, P.y);
    }
}

também gostaria de saber se tem alguma forma de debugar um applet percorrendo linha a linha

>.<"

obrigado desde já

3 Respostas

M

A resposta para a pergunta do título é JApplet. Sempre que for escolher entre componentes AWT x Swing, escolha Swing.

Quanto ao debug, é possível fazer se você estiver usando uma IDE (Eclipse, Netbeans… eles rodam o JApplet pelo AppletViewer e permitem um debug, inclusive passo-a-passo).

E quanto ao programa, é perfeitamente possível fazer em um JApplet. Só não se faz do mesmo jeito. Em Swing, usá-se o padrão Observer, que define Events e Listeners (isso em todo Swing, não só em JApplets). Veja um exemplo:

import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JApplet;

public class NewJApplet extends JApplet {

	private Point p;

	@Override
	public void init() {
		p = new Point(100, 100);
		addMouseListener(new MouseAdapter() {
			@Override
			public void mousePressed(MouseEvent e) {
				p.x = e.getX();
				p.y = e.getY();
				repaint();
			}
		});
	}

	@Override
	public void paint(Graphics g) {
		super.paint(g);
		g.drawString("x:" + p.x + "  y:" + p.y, p.x, p.y);
	}

}
T

Marco, muito obrigado, ajudou mto msm!!!

Vc sabe de algum material online que eu possa ler sobre Observer, Events e Listeners?

E o que é aquilo que vc fez que o parâmetro da função addMouseListener é outra função?

É a primeira vez que vejo então to meio perdido >.<"

Vlw!

M

Leituras:

Sobre os Listeners do Swing:

http://java.sun.com/docs/books/tutorial/uiswing/events/index.html

Sobre o padrão Observer:

http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/arqu/observer.htm
http://www.devmedia.com.br/articles/viewcomp.asp?comp=5719
http://www.javaworld.com/javaworld/javaqa/2001-05/04-qa-0525-observer.html

Como todo os eventos do framework Swing seguem esse padrão é de suma importância entendê-lo ao se desenvolver aplicações desktop.

Criado 12 de janeiro de 2010
Ultima resposta 14 de jan. de 2010
Respostas 3
Participantes 2