Review this.  I think this is what you are after, except the group element.
import java.awt.event.MouseEvent;
import java.io.IOException;
import java.text.DecimalFormat;
import com.esri.arcgis.addins.desktop.Tool;
import com.esri.arcgis.arcmapui.IMxDocument;
import com.esri.arcgis.carto.GroupElement;
import com.esri.arcgis.carto.IActiveView;
import com.esri.arcgis.carto.IGraphicsContainer;
import com.esri.arcgis.carto.MarkerElement;
import com.esri.arcgis.carto.TextElement;
import com.esri.arcgis.display.IDisplayTransformation;
import com.esri.arcgis.display.IScreenDisplay;
import com.esri.arcgis.display.ITextSymbol;
import com.esri.arcgis.display.RgbColor;
import com.esri.arcgis.display.SimpleMarkerSymbol;
import com.esri.arcgis.display.TextSymbol;
import com.esri.arcgis.display.esriTextVerticalAlignment;
import com.esri.arcgis.framework.IApplication;
import com.esri.arcgis.geometry.IPoint;
import com.esri.arcgis.geometry.ISpatialReference;
import com.esri.arcgis.geometry.Point;
import com.esri.arcgis.geometry.SpatialReferenceEnvironment;
import com.esri.arcgis.interop.AutomationException;
import com.esri.arcgis.support.ms.stdole.StdFont;
public class Tool1 extends Tool {
    
    private IApplication app;
    private IActiveView av;
    private IMxDocument mxDocument;
    
    private String message;
    
    @Override
    public void activate() throws IOException, AutomationException {
        
    }
    @Override
    public void init(IApplication arg0) throws IOException, AutomationException {
        super.init(arg0);
        this.app = arg0;
        mxDocument = (IMxDocument) app.getDocument();
        av = mxDocument.getActiveView();
        
    }
    @Override
    public void mousePressed(MouseEvent mouseEvent) {
        super.mousePressed(mouseEvent);
        try{
            Point point1 = new Point();  // point where user clicks
            point1.putCoords((double)mouseEvent.getX(), (double)mouseEvent.getY());
            
            Point point2 = (Point) getMapCoordinatesFromScreenCoordinates(point1,av);
            double x = point2.getX();
            double y = point2.getY();
            DecimalFormat df = new DecimalFormat("#.####");
            message = "x: " + df.format(x) + " y: " + df.format(y);
            
            RgbColor color = new RgbColor();
            color.setRed(255);
            
            StdFont font = new StdFont();
            font.setName("Arial");
            
            SimpleMarkerSymbol sms = new SimpleMarkerSymbol();
            sms.setStyle(com.esri.arcgis.display.esriSimpleMarkerStyle.esriSMSCircle);
            sms.setColor(color);
            
            MarkerElement me = new MarkerElement();
            me.setSymbol(sms);
            me.setGeometry(point2);
            me.setName("me");
            
            ITextSymbol textSymbol = new TextSymbol();
            textSymbol.setColor(color);
            textSymbol.setFont(font);
            textSymbol.setSize(9);
            textSymbol.setVerticalAlignment(esriTextVerticalAlignment.esriTVACenter);
            
            TextElement textElement = new TextElement();
            textElement.setSymbol(textSymbol);
            textElement.setColor(color);
            textElement.setText(message);
            textElement.setGeometry(point2);
            textElement.setYOffset(11.27);
            textElement.setName("textElement");
            
            GroupElement gp = new GroupElement();
            gp.addElement(textElement);
            gp.addElement(me);
            gp.setName("click location");
            
            IGraphicsContainer graphicsContainer = av.getGraphicsContainer();
            graphicsContainer.addElement(gp, 0);
            av.partialRefresh(com.esri.arcgis.carto.esriViewDrawPhase.esriViewGraphics, gp, av.getExtent());
            
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public IPoint getMapCoordinatesFromScreenCoordinates(IPoint screenPoint, IActiveView activeView)throws Exception{
        if (screenPoint == null || screenPoint.isEmpty() || activeView == null)
            return null;
        
        IScreenDisplay screenDisplay = activeView.getScreenDisplay();
        IDisplayTransformation displayTransformation = screenDisplay.getDisplayTransformation();
        return displayTransformation.toMapPoint((int)screenPoint.getX(), (int)
            screenPoint.getY());
    }
}
[ATTACH=CONFIG]33310[/ATTACH]