+ imgWidth = (av.endRes - av.startRes + 1) * av.charWidth;\r
+\r
+ image = new BufferedImage(imgWidth, ap.annotationPanel.getHeight(),\r
+ BufferedImage.TYPE_INT_RGB);\r
+ gg = (Graphics2D) image.getGraphics();\r
+ gg.setRenderingHint(RenderingHints.KEY_ANTIALIASING,\r
+ RenderingHints.VALUE_ANTIALIAS_ON);\r
+\r
+ gg.setFont(av.getFont());\r
+ fm = gg.getFontMetrics();\r
+\r
+ drawComponent(gg, av.startRes, av.endRes + 1);\r
+ g.drawImage(image, 0, 0, this);\r
+ }\r
+\r
+ public void fastPaint(int horizontal)\r
+ {\r
+ if ( (horizontal == 0) ||\r
+ (av.alignment.getAlignmentAnnotation() == null) ||\r
+ (av.alignment.getAlignmentAnnotation().length < 1))\r
+ {\r
+ repaint();\r
+\r
+ return;\r
+ }\r
+\r
+ gg.copyArea(0, 0, imgWidth, getHeight(), -horizontal * av.charWidth, 0);\r
+\r
+ int sr = av.startRes;\r
+ int er = av.endRes + 1;\r
+ int transX = 0;\r
+\r
+ if (horizontal > 0) // scrollbar pulled right, image to the left\r
+ {\r
+ transX = (er - sr - horizontal) * av.charWidth;\r
+ sr = er - horizontal;\r
+ }\r
+ else if (horizontal < 0)\r
+ {\r
+ er = sr - horizontal;\r
+ }\r
+\r
+ gg.translate(transX, 0);\r
+\r
+ drawComponent(gg, sr, er);\r
+\r
+ gg.translate( -transX, 0);\r
+\r
+ fastPaint = true;\r
+ repaint();\r