Hi Dave,

  Could you please provide a stack trace when the app is frozen?
  Hit Ctrl+\  on unix, and Ctrl+Break on windows.

  Thank you,
    Dmitri

On Wed, Nov 03, 2004 at 11:08:37AM +0100, Braun-Friedman, David wrote:
 > Im hoping that someone can give me some insight on the following issue:
 >
 > I am writing a java 2D imaging application that allows the user to
 > annotate crosses on top of a jpeg image (among allowing other image
 > manipulations as well).  I have been trying to implement a tooltip for
 > each of the annotations so that it will display some info about that
 > particular annotation.  To do so, I created a class called
 > crossAnnotation that extends JComponent, thus allowing me use the
 > setToolTipText method for each crossAnnotation object.  The problem
 > however, is that when I add the crossAnnoation(JComponent) obect to the
 > imageCanvas(JPanel) where the image is drawn my whole program freezes.
 > The program can't seem to handle the crossAnnotation being added to the
 > imageCanvas as JComponent.  Anyone know why? or maybe how I can
 > implement the toolTip in some other way (but as far as I can se toolTip
 > only works with JComponent)?  Any help would be greatly appreciated.
 >
 >
 > Thanks
 > Dave
 >
 > Here's my code for crossAnnotation
 >
 >
 > public class CrossAnnotation extends JComponent{
 >
 >     private GeneralPath p;
 >     private double drawX, drawY;
 >     private double magFactor;
 >
 >     private Graphics2D g2D;
 >     private Spot2GPlate spot;
 >
 >     public CrossAnnotation(double drawX, double drawY, double magFactor,
 > Graphics2D g2D, Spot2GPlate spot) {
 >         //addMouseListener(this);
 >         this.drawX = drawX;
 >         this.drawY = drawY;
 >         this.magFactor = magFactor;
 >         this.g2D = g2D;
 >         this.spot = spot;
 >         this.setToolTipText("aupa!!!!");
 >         //makeCross();
 >     }
 >
 >     public void make(int swidth, int sheight, double magFactor, double
 > width, double height){
 >        p = new GeneralPath(GeneralPath.WIND_NON_ZERO);
 >        p.moveTo(0, -sheight);
 >        p.lineTo(0, sheight);
 >        p.moveTo(-swidth, 0);
 >        p.lineTo(swidth, 0);
 >        //this.setSize(swidth*2, sheight*2);
 >     }
 >
 >     public void setColorandDraw(int i, SpotList spotList, int gelType,
 > boolean annotatedCanvas){
 >       if(i < spotList.getNumAnnotated())
 >       {
 >           if ((spot.getSpotExpressionTarget() -
 > spot.getSpotExpressionControl()) > 0)
 >           {
 >             if(gelType == 1)
 >                 g2D.setColor(Color.red);
 >             else
 >             {
 >                 g2D.setColor(new Color(0,150,0)); }
 >           }
 >           else
 >           {
 >             if(gelType == 1)
 >             {
 >                 g2D.setColor(new Color(0,150,0)); }
 >             else
 >                 g2D.setColor(Color.red);
 >           }
 >
 >           this.drawAnnotation(drawX, drawY);
 >       }
 >       else
 >       {
 >         if(spotList.size() > spotList.getNumAnnotated())
 >         {
 >             if(annotatedCanvas)
 >                 g2D.setColor(Color.red);
 >             else
 >                 g2D.setColor(new Color(0,150,0));
 >
 >             this.drawAnnotation(drawX, drawY);
 >         }
 >       }
 >     }
 >
 >     public void setAnnotationLabel(int canvasH){
 >       //System.out.println("canvasH: "+canvasH);
 >       g2D.setColor(Color.blue);
 >       Font f = new Font("Dialog", Font.PLAIN, (int)(12*magFactor));
 >       g2D.setFont(f);
 >       //g2D.translate(drawX, drawY);
 >       g2D.drawString(spot.getSpotIdentifier(),
 > (int)(drawX-(15*magFactor)), (int)(drawY-((canvasH/36)*magFactor)));
 >       //g2D.dispose();
 >     }
 >
 >     public void drawAnnotation(double drawX, double drawY){
 >         //g2D.setColor(Color.red);
 >         g2D.translate(drawX, drawY);
 >         g2D.draw(p);
 >         g2D.translate(-drawX, -drawY);
 >                         //g2D.dispose();
 >     }
 >
 >
 >
 >     /*public void mouseClicked(MouseEvent e) {
 >         //To change body of implemented methods use File | Settings |
 > File Templates.
 >     }
 >
 >     public void mouseEntered(MouseEvent e) {
 >         System.out.println("mouseEntered");
 >         this.setToolTipText("x: "+drawX+" y: "+drawY);//To change body
 > of implemented methods use File | Settings | File Templates.
 >     }
 >
 >     public void mouseExited(MouseEvent e) {
 >         //To change body of implemented methods use File | Settings |
 > File Templates.
 >     }
 >
 >     public void mousePressed(MouseEvent e) {
 >         //To change body of implemented methods use File | Settings |
 > File Templates.
 >     }
 >
 >     public void mouseReleased(MouseEvent e) {
 >         //To change body of implemented methods use File | Settings |
 > File Templates.
 >     }
 > */
 >
 > }
 >
 >
 > ===========================================================================
 > To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
 > of the message "signoff JAVA2D-INTEREST".  For general help, send email to
 > [EMAIL PROTECTED] and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to