Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4210705

drawString fails on a buffer image when y < 17

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 1.2.0, 1.2.1
    • Fix Version/s: 1.3.0
    • Component/s: client-libs
    • Labels:
    • Subcomponent:
      2d
    • Resolved In Build:
      kestrel
    • CPU:
      x86, sparc
    • OS:
      solaris_2.6, windows_95, windows_nt

      Description



      Name: gsC80088 Date: 02/10/99


      it's very simple. drawString just gives up when y is less
      than a certain value, while drawLine and others keep working.



      /*
       * this program demonstrates that after a translation, drawString
       * doesn't work with y values less than about -17 or so.
       */

      import java.awt.*;

      public class DrawStringBug extends Component {

         private Image image;
         private Graphics graphics;

         public Dimension getPreferredSize() {
            return(new Dimension(300,300));
         }

         public void setBounds(int theX, int theY, int theWidth, int theHeight) {
            super.setBounds(theX,theY,theWidth,theWidth);
            // prepare for double-buffering
            image = createImage(theWidth,theWidth);
            graphics = image.getGraphics();
            graphics.setColor(getBackground());
            graphics.fillRect(0,0,theWidth,theWidth);
            graphics.translate(theWidth/2,theWidth/2);
         }

         public void prePaint() {
            if (image == null) {
               return;
            }
            graphics.setColor(Color.black);
            for ( int y = 30; y > -100; y -= 5 ) {
               graphics.drawString(String.valueOf(y),0,y);
               graphics.drawLine(-30,y,-10,y);
            }
         }

         public void paint(Graphics theGraphics) {
            if (image != null) {
               theGraphics.drawImage(image,0,0,this);
            }
         }

         public void update(Graphics theGraphics) {
            if (image != null) {
               theGraphics.drawImage(image,0,0,this);
            }
         }

         public static void main(String [] args) {
            Frame f = new Frame();
            DrawStringBug bug = new DrawStringBug();
            f.add(bug,BorderLayout.CENTER);
            f.pack();
            f.setVisible(true);
            bug.prePaint();
            bug.repaint();
         }
      }
      (Review ID: 53473)
      ======================================================================

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              prr Philip Race
              Reporter:
              gstone Greg Stone
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: