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 :-)

