public void paint(Graphics g) {
Arrow arrow=new Arrow();
arrow.drawArrow(g,100,100,Math.PI/4,100,Arrow.SIDE_LEAD);
}
for example :
import java.awt.*;
public class Arrow {
public static final int SIDE_LEAD=0,
SIDE_TRAIL=1,
SIDE_BOTH=2,
SIDE_NONE=3;
public final double pi=Math.PI;
public Arrow () { ; }
public void drawArrow(Graphics g,
int x,int y,
double theta,
int length,
int side) {
try {
if (length < 0) {
theta+=pi;
length*=-1;
}
int x1,y1;
x1=(int)Math.ceil(x + length*Math.cos(theta));
y1=(int)Math.ceil(y - length*Math.sin(theta));
g.drawLine(x,y,x1,y1);
switch (side) {
case SIDE_LEAD :
drawArrow(g,x1,y1,theta+5*pi/4,5,SIDE_NONE);
drawArrow(g,x1,y1,theta+3*pi/4,5,SIDE_NONE);
break;
case SIDE_TRAIL :
drawArrow(g,x,y,theta-pi/4,5,SIDE_NONE);
drawArrow(g,x,y,theta+pi/4,5,SIDE_NONE);
break;
case SIDE_BOTH :
drawArrow(g,x,y,theta-pi/4,5,SIDE_NONE);
drawArrow(g,x,y,theta+pi/4,5,SIDE_NONE);
drawArrow(g,x1,y1,theta+5*pi/4,5,SIDE_NONE);
drawArrow(g,x1,y1,theta+3*pi/4,5,SIDE_NONE);
break;
case SIDE_NONE :
break;
default:
throw new IllegalArgumentException();
}
}
catch (IllegalArgumentException iae) {
System.out.println("Invalid value for variable side.");
}
}
}