X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FIdCanvas.java;h=959c83c28264a1a1bc73219b2d3958a0e4483cf2;hb=eae0a6cd988e80f75caeee3ba92822fbee6e227d;hp=cb7fddfd70e891075c7971d20aa4c152245a2abb;hpb=4532dfefeac026198bfea1b9dbe84186e870bfc8;p=jalview.git diff --git a/src/jalview/gui/IdCanvas.java b/src/jalview/gui/IdCanvas.java index cb7fddf..959c83c 100755 --- a/src/jalview/gui/IdCanvas.java +++ b/src/jalview/gui/IdCanvas.java @@ -17,6 +17,7 @@ public class IdCanvas extends JPanel BufferedImage image; Graphics2D gg; int imgHeight=0; + boolean fastPaint = false; public IdCanvas(AlignViewport av) { @@ -49,11 +50,8 @@ public class IdCanvas extends JPanel public void fastPaint(int vertical) { - if(image==null) - { - repaint(); - return; - } + if(gg==null) + { repaint(); return;} gg.copyArea( 0,0, getWidth(), imgHeight, 0, -vertical*av.charHeight ); @@ -75,11 +73,22 @@ public class IdCanvas extends JPanel gg.translate( 0, -transY ); - getGraphics().drawImage(image, 0, 0, this); + fastPaint = true; + repaint(); } public void paintComponent(Graphics g) { + g.setColor(Color.white); + g.fillRect(0, 0, getWidth(), getHeight()); + + if (fastPaint) + { + g.drawImage(image, 0, 0, this); + fastPaint = false; + return; + } + imgHeight = getHeight(); imgHeight -= imgHeight % av.charHeight; image = new BufferedImage(getWidth(), imgHeight, BufferedImage.TYPE_INT_RGB); @@ -93,10 +102,6 @@ public class IdCanvas extends JPanel av.getFont().getSize()); gg.setFont(italic); - - g.setColor(Color.white); - g.fillRect(0,0,getWidth(),getHeight()); - drawIds( av.getStartSeq(), av.endSeq); g.drawImage(image, 0, 0, this);