 
This applet converts the x and y coordinates of the point you click on from Java
device coordinates, i.e. with the origin in the top left hand corner and
positive x going right and positive y going down, to logical x and y
coordinates, i.e. with the origin in the bottom left hand corner and positive x
going right and positive y going up.

Click anywhere in the box:

Code:
// logicalDevice.java: converts between logical and device coordinates
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*;
public class logicalDevice extends Applet
{ 
    int x,y, maxX,maxY;
    float logicX,logicY;
   public void init()
   { 
      setSize(500, 500);
      this.addMouseListener(new MouseAdapter(){                public void mousePressed(MouseEvent
evt){x = evt.getX();                   y = evt.getY();repaint();}});
      show();
   }
    public void paint(Graphics g)
   { 
    Dimension d = getSize();
    maxX=d.width-1; 
    maxY=d.height-1;
    g.drawString("canvas number of pixels width  = " + d.width,  10, 15);
    g.drawString("canvas number of pixels height = " + d.height, 10, 30); 
    g.drawString("point device x-coordinate  = " + x,  10, 45);
    g.drawString("point device y-coordinate = " + y, 10, 60);
    g.drawString("maximum x-coordinate = " + maxX, 10, 75);
    g.drawString("maximum y-coordinate = " + maxY, 10, 90);
    logicX=(float)x;
    logicY=(float)(maxY-y);
    g.drawString("logical x-coordinate = " + logicX, 10, 105);
    g.drawString("logical y-coordinate = " + logicY, 10, 120);
    g.setColor(Color.blue);
    g.drawLine(x,y,x,y);//draws a blue pixel at (x,y)
   }
}
