java - Calling repaint for specific JPanel in JFrame repaints also JDialog -


below small example describe

well, have simple jframe jpanel contentpane repaint swingworker every 20 ms panel.repaint().

also, have jdialog opened shows own graphics opengl (i use awtglcanvas lwjgl library) swaps buffers , repaint() every time paint content (faster 20ms).

the big problem in way repainting jpanel affects jdialog meaning if remove panel.repaint() (which have done) works fine! when have panel.repaint() jdialog shows strange lines have cut graphics in 2 , try move them no success. dont know if call flicker may problem.

public testframe(){     panel = new jpanel(){         protected void paintcomponent(graphics g){              //do painting jpanel here         }     }     setcontentpane(panel);     updatetime(); }   public void updatetime(){       swingworker worker = new swingworker(){           @override       protected object doinbackground() throws exception {              while(stoptimer == false){                thread.sleep(20);                if(isfocused() == true){                  timer += 0.2f;                  panel.repaint();                   }                      }              return null;           }       };       worker.execute();  } 

and here awtglcanvas.paint method in jdialog contentpane

@override public void paintgl() {     //do painting classic opengl     swapbuffers(); //awtglcanvas built-in method, meaning cant control     repaint(); // runs paintgl() again } 

thanks in advance!


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

Python ctypes access violation with const pointer arguments -