Mam problem, kod wyglada nastepujaco import java.io.;
import java.awt.
;
import java.applet.;
import javax.swing.
;
import java.awt.event.*;
public class Kompas extends Applet implements ActionListener, TextListener, MouseListener{
Button b1,b2,b3,b4;
TextField tf;
public static void main(String args[]){
Frame f=new Frame("Kompas");
Kompas ak=new Kompas();
f.add(ak);
f.setSize(500,300);
ak.init();
f.show();
}
public void init(){
setLayout(new FlowLayout());
b1=new Button("N");
add(b1);
b1.addActionListener(this);
b2=new Button("S");
add(b2);
b2.addActionListener(this);
b3=new Button("W");
add(b3);
b3.addActionListener(this);
b4=new Button("E");
add(b4);
b4.addActionListener(this);
TarczaKompasu k=new TarczaKompasu();
add(k);
tf=new TextField(25);
add(tf);
tf.addTextListener(this);

}

public void actionPerformed(ActionEvent de){
Object ob=de.getSource();
if(ob==b1){
TarczaKompasu.odczytkatu=0;
repaint();
}
if(ob==b2){
TarczaKompasu.odczytkatu=180;
repaint();
}
if(ob==b3){
TarczaKompasu.odczytkatu=270;
repaint();
}
if(ob==b4){
TarczaKompasu.odczytkatu=90;
repaint();
}
}
public void textValueChanged(TextEvent e){
int i=0;
TextComponent t=(TextComponent) e.getSource();
try{
i=Integer.parseInt(t.getText());
}catch(NumberFormatException exc){
}
TarczaKompasu.odczytkatu=i;

  repaint();

}

}
class TarczaKompasu extends Component implements Runnable{
public Dimension getPreferredSize(){
return new Dimension(200,200);
}
public Dimension getMinimumSize(){
return new Dimension(80,80);
}
public Dimension getMaximumSize(){
return new Dimension(400,400);
}
public static Integer odczytkatu=0;
public void run(){
while(true){
try{Thread.sleep(6);}
catch(InterruptedException e){
}odczytkatu=odczytkatu+1;
repaint();
}
}

public void paint(Graphics g){
Color tapeta=Color.green.brighter();
g.setColor(tapeta);
g.fillRect(0,0,getSize().width-1,getSize().height-1);
double siatka=10,skala,srednica=10;
double x=getSize().width/siatka;
double y=getSize().height/siatka;
skala=Math.min(x,y);
//brzeg
Color brzeg=Color.black.brighter();
g.setColor(brzeg);
int a1=(int)(xsiatka/2-skalasrednica/2);
int b1=(int)(ysiatka/2-skalasrednica/2);
int c1=(int)(skalasrednica);
int d1=(int)(skala
srednica);
g.fillOval(a1,b1,c1,d1);

  Color kompas=Color.yellow.brighter();
  g.setColor(kompas);
  int a4=(int)(x*siatka/2-(skala*srednica*0.95)/2);
  int b4=(int)(y*siatka/2-(skala*srednica*0.95)/2);
  int c4=(int)(skala*srednica*0.95);
  int d4=(int)(skala*srednica*0.95);
  g.fillOval(a4,b4,c4,d4);
  
  Color napisy=Color.blue.brighter();
  g.setColor(napisy);
  Font czcionka=g.getFont();
  g.setFont(new Font(czcionka.getName(),czcionka.getStyle(),(int)skala));
  int a5=(int)(x*siatka/2-skala/2*3/4);
  int b5=(int)(y*siatka/2-(srednica/2-1)*skala+skala*3/4);
  int c5=(int)(y*siatka/2+(srednica/2-1)*skala);
  int d5=(int)(y*siatka/2+skala/2*3/4);
  int e5=(int)(x*siatka/2-(srednica/2-1)*skala);
  int f5=(int)(x*siatka/2+(srednica/2-1)*skala-skala*3/4);
  g.drawString("N",a5,b5);
  g.drawString("S",a5,c5);
  g.drawString("W",e5,d5);
  g.drawString("E",f5,d5);
           
          
            Color wskazowka=Color.red.brighter();
            g.setColor(wskazowka);
           
            double kat=Math.PI*odczytkatu/180;
           
            double iksa=(skala*srednica*0.2)*Math.cos(kat);
            double igreka=(skala*srednica*0.2)*Math.sin(kat);
           
            double iksb=(skala*srednica*0.2)*Math.cos(kat);
            double igrekb=(skala*srednica*0.2)*Math.sin(kat);
           
            double iksc=(skala*srednica*0.3)*Math.sin(kat);
            double igrekc=(skala*srednica*0.3)*Math.cos(kat);                       
           
            int a61=(int)(x*siatka/2+(int)iksa);
            int a62=(int)(y*siatka/2+(int)igreka);
           
            int b61=(int)(x*siatka/2-(int)iksb);
            int b62=(int)(y*siatka/2-(int)igrekb);
           
            int c61=(int)(x*siatka/2+(int)iksc);
            int c62=(int)(y*siatka/2-(int)igrekc);
           
            g.fillPolygon(new int[]{a61, b61, c61}, new int[]{a62, b62, c62}, 3);
           
            Color wskazowka1=Color.black.brighter();
            g.setColor(wskazowka1);
           
            double kat1=Math.PI*(odczytkatu+180)/180;
           
            double iksa1=(skala*srednica*0.2)*Math.cos(kat1);
            double igreka1=(skala*srednica*0.2)*Math.sin(kat1);
           
            double iksb1=(skala*srednica*0.2)*Math.cos(kat1);
            double igrekb1=(skala*srednica*0.2)*Math.sin(kat1);
           
            double iksc1=(skala*srednica*0.3)*Math.sin(kat1);
            double igrekc1=(skala*srednica*0.3)*Math.cos(kat1);
           
            int a611=(int)(x*siatka/2+(int)iksa1);
            int a612=(int)(y*siatka/2+(int)igreka1);
           
            int b611=(int)(x*siatka/2-(int)iksb1);
            int b612=(int)(y*siatka/2-(int)igrekb1);
           
            int c611=(int)(x*siatka/2+(int)iksc1);
            int c612=(int)(y*siatka/2-(int)igrekc1);
           
            g.fillPolygon(new int[]{a611, b611, c611}, new int[]{a612, b612, c612}, 3);
           
            Color srodek=Color.yellow.brighter();
            g.setColor(srodek);
            int a7=(int)(x*siatka/2-srednica*skala*0.1/2);
            int b7=(int)(y*siatka/2-srednica*skala*0.1/2);
            int c7=(int)(srednica*skala*0.1);
            int d7=(int)(srednica*skala*0.1);
            g.fillOval(a7, b7, c7, d7);
    }

}


Przyciski wszsytko dziala , ale chce zrobic zeby kliknac na myszke i przesowac wskaznik!?