new to AWT

Hello,

I don't understand why this code don't compile on my linux box :

//

// Test AWT

//

import java.applet.Applet;

import java.awt.*;

import java.awt.event.*;

publicclass Exo1Appletextends java.applet.Applet{

publicvoid init(){

Frame frame =new Fenetre();

frame.setVisible(true);

}

}

class Fenetreextends Frameimplements ActionListener{

private TextArea StatusLine =new TextArea();

DrawArea drawArea;

Fenetre(){

setLayout(new BorderLayout());

// Menu bar

//FileMenu

Menu FileMenu =new Menu("Fichier");

MenuItem open =new MenuItem("Ouvrir");

open.addActionListener(this);

FileMenu.add(open);

MenuItem save =new MenuItem("Sauvegarder");

save.addActionListener(this);

FileMenu.add(save);

MenuItem quit =new MenuItem("Quitter");

quit.addActionListener(this);

FileMenu.add(quit);

//HelpMenu

Menu HelpMenu =new Menu("Aide");

MenuItem help =new MenuItem("Explications");

help.addActionListener(this);

HelpMenu.add(help);

MenuItem about =new MenuItem("A propos");

save.addActionListener(this);

HelpMenu.add(about);

//add menus

MenuBar MainMenu =new MenuBar();

MainMenu.add(FileMenu);

MainMenu.add(HelpMenu);

setMenuBar(MainMenu);

// component buttons & canvas & text area

add("North",new Button("R閟istance"));

add("Center", drawArea =new DrawArea());

add("South", StatusLine);

pack();

setTitle("Ma fenetre");

setSize(640,480);

}

publicvoid actionPerformed(ActionEvent e){

if(e.getActionCommand().equals("Quitter"))

dispose();

if(e.getActionCommand().equals("Ouvrir")){

System.out.println("Ouvrir choisi");

loadFile();

}

if(e.getActionCommand().equals("Sauvegarder"))

System.out.println("Sauvegarder choisi");

}

privatevoid loadFile(){

// ATTENTION VOIR CERTIFICAT POUR L'APPLET (acces fichier local)

//FileDialog fd = new FileDialog(this, "Ouvrir un fichier", FileDialog.LOAD);

//fd.setVisible(true);

}

privatevoid saveFile(){

// ATTENTION VOIR CERTIFICAT POUR L'APPLET (acces fichier local)

//FileDialog fd = new FileDialog(this, "Sauver un fichier", FileDialog.SAVE);

//fd.setVisible(true);

}

publicvoid processEvent(Event e){

if(e.id == Event.WINDOW_DESTROY)

dispose();

}

}

class DrawAreaextends Canvas{//implements MouseMotionListener, MouseListener {

Image drawImg;// double buffer

Graphics drawGr;

int xpos,ypos,oxpos,oypos;// line coord

DrawArea(){

MyListener myListener =new MyListener();

setBackground(Color.white);

addMouseMotionListener(myListener);

addMouseListener(myListener);

//addMouseMotionListener(this);

//addMouseListener(this);

}

publicvoid update(Graphics g){

paint(g);

}

publicvoid paint(Graphics g){

if (drawImg ==null){

drawImg = createImage(getSize().width, getSize().height);

drawGr = drawImg.getGraphics();

drawGr.setColor(Color.black);

}

g.drawImage(drawImg, 0, 0,null);

}

class MyListenerextends MouseAdapterimplements MouseMotionListener, MouseListener{

publicvoid mouseDragged(MouseEvent e){

xpos = e.getX();

ypos = e.getY();

if (drawGr !=null){

drawGr.drawLine(oxpos,oypos,xpos,ypos);

oxpos = xpos;

oypos = ypos;

}

repaint();

}

publicvoid mousePressed(MouseEvent e){

oxpos = e.getX();

oypos = e.getY();

}

publicvoid mouseMouved(MouseEvent e){

}

}

}

I get this message from JAVAC (ver 1.5.0_06) :

Exo1Applet.java:114: DrawArea.MyListener is not abstract and does not override abstract method mouseMoved(java.awt.event.MouseEvent) in java.awt.event.MouseMotionListener

class MyListener extends MouseAdapter implements MouseMotionListener, MouseListener {

^

1 error

? Why ?

Some body can explain to me?

Thanks :-)

[8421 byte] By [yeshouaa] at [2007-10-3 2:24:34]
# 1

> I get this message from JAVAC (ver 1.5.0_06) :

> Exo1Applet.java:114: DrawArea.MyListener is not

> abstract and does not override abstract method

> mouseMoved(java.awt.event.MouseEvent) in

> java.awt.event.MouseMotionListener

> class MyListener extends MouseAdapter

>implements MouseMotionListener, MouseListener {

>^

> r

> ? Why ?

> Some body can explain to me?

> Thanks :-)

You did not implement MouseMotionListener's mouseMoved(java.awt.event.MouseEvent) method in your MyListener class.

zadoka at 2007-7-14 19:23:34 > top of Java-index,Java Essentials,New To Java...
# 2

> You did not implement MouseMotionListener's

> mouseMoved(java.awt.event.MouseEvent) method in your

> MyListener class.

He tried to, but he spelled it wrong. :)

And if he extends MouseAdapter, he doesn't have to say that he implements MouseListener (because MouseAdapter implements it). He could extend MouseInputAdapter, and won't have to mention either of the "implements" that he currently has.

doremifasollatidoa at 2007-7-14 19:23:34 > top of Java-index,Java Essentials,New To Java...