Ok so can you take the source from the git ? You probably have an account in cr.openjdk.java.net ,
but Another solution to fix the bug 8178091 is to write a repaint() method from Component.java (as we all know : JPanel.java -->(extends) >Jcomponent.java -->(extends)-> Composent.java) and the repaint() method is on Component.java So in JPanel.java we add a method repaint() ; public void repaint(){ super.repaint() ; //this call repaint() from Component.java to reproduce a simple repaint(); Toolkit.getDefaultToolkit().sync(); } so with this each time we call repaint() ; it call our new repaint() method with the sync(); and then it works well 2017-04-17 16:24 GMT+02:00 Philip Race <philip.r...@oracle.com>: > Per openjdk rules, we cannot review or accept webrevs hosted anywhere > other than cr.openjdk.java.net [1] > > Generally you ask someone who has a login there to do it for you > > Or you may try submitting the patch in-line to this email if it is short. > > Not an attachment. It will get stripped. > > -phil. > > [1] http://openjdk.java.net/guide/changePlanning.html > > > On 4/17/17, 3:42 AM, Patrick Chen wrote: > > https://github.com/cloudStrif/webrev > > > 2017-04-17 12:33 GMT+02:00 Patrick Chen <chen.j.patr...@gmail.com>: > >> so here a webrev : >> >> 2017-04-12 23:41 GMT+02:00 Sergey Bylokhov <sergey.bylok...@oracle.com>: >> >>> (CC) 2d-dev >>> If some of these options helps then most probably the bug is in the >>> Java2D pipeline(XRender?) and looks like this is duplicate of: >>> https://bugs.openjdk.java.net/browse/JDK-8068529 >>> >>> >>> >>> OK , >>> So I did severals tests with theses options with programms using full >>> repaint() method >>> ,and it still work well, >>> but occasionnaly ,the lag is here again ,particularly when there are a >>> lot component on the screen (Jpanel screen) >>> >>> indeed , I think it is not normal that we need theses options to work >>> well , >>> but it seem the problem does not come from Swing package , but repaint() >>> method in AWT package , >>> >>> 2017-04-12 21:26 GMT+02:00 Patrick Chen <chen.j.patr...@gmail.com>: >>> >>>> OK , >>>> So I did severals tests with theses options with programms using full >>>> repaint() method >>>> ,and it still work well, >>>> but occasionnaly ,the lag is here again ,particularly when there are a >>>> lot component on the screen (Jpanel screen) >>>> >>>> indeed , I think it is not normal that we need theses options to work >>>> well , >>>> but it seem the problem does not come from Swing package , but >>>> repaint() method in AWT package , >>>> >>>> >>>> >>>> 2017-04-11 19:18 GMT+02:00 Sergey Bylokhov <sergey.bylok...@oracle.com> >>>> : >>>> >>>>> >>>>> Hi , >>>>> yes ; >>>>> with theses options it works ! >>>>> but what that means ? >>>>> >>>>> >>>>> Is it works in case of any options or in some cases it does not work? >>>>> Please double check. >>>>> >>>>> >>>>> so it not a bug ? >>>>> >>>>> 2017-04-11 18:46 GMT+02:00 Sergey Bylokhov <sergey.bylok...@oracle.com >>>>> >: >>>>> >>>>>> Hi, Patrick. >>>>>> Can you please run the code using these options: >>>>>> -Dsun.java2d.xrender=true >>>>>> -Dsun.java2d.xrender=false >>>>>> -Dsun.java2d.opengl=true >>>>>> -Dsun.java2d.opengl=false >>>>>> >>>>>> >>>>>> >>>>>> After tests it seems that the problem doesn't come from Timer , but >>>>>> the repaint() method , >>>>>> >>>>>> >>>>>> even with this code the bug is here. >>>>>> the bug is on Linux. >>>>>> >>>>>> 2017-04-11 11:07 GMT+02:00 Walter Laan <wl...@costengineering.eu>: >>>>>> >>>>>>> Note that the example code in JDK-8178091 sleeps on the EDT, so >>>>>>> you’re lucky it paints at all instead of hanging the UI. >>>>>>> >>>>>>> >>>>>>> >>>>>>> It looks like you adapted the code from >>>>>>> http://codereview.stackexchange.com/questions/29630/simple-j >>>>>>> ava-animation-with-swing where no-one experienced with Swing >>>>>>> pointed out this error L. >>>>>>> >>>>>>> >>>>>>> >>>>>>> Using a javax.swing.Timer (not the java.util.Timer!) and it runs >>>>>>> okay (using Win10, Java 8u101): >>>>>>> >>>>>>> >>>>>>> >>>>>>> *private* *void* go() { >>>>>>> >>>>>>> >>>>>>> >>>>>>> *new* Timer(10, *new* ActionListener() { >>>>>>> >>>>>>> // *Les* *coordonnées* *de* *départ* *de* *notre* *rond* >>>>>>> >>>>>>> *private* *int* x = pan.getPosX(), y = pan.getPosY(); >>>>>>> >>>>>>> // *Le* *booléen* pour *savoir* *si* l'on *recule* *ou* >>>>>>> non *sur* l'axe x >>>>>>> >>>>>>> *private* *boolean* backX = *false*; >>>>>>> >>>>>>> // *Le* *booléen* pour *savoir* *si* l'on *recule* *ou* >>>>>>> non *sur* l'axe y >>>>>>> >>>>>>> *private* *boolean* backY = *false*; >>>>>>> >>>>>>> >>>>>>> >>>>>>> @Override >>>>>>> >>>>>>> *public* *void* actionPerformed(ActionEvent e) { >>>>>>> >>>>>>> // *Si* *la* *coordonnée* x est *inférieure* à 1, >>>>>>> on *avance* >>>>>>> >>>>>>> *if*(x < 1) { >>>>>>> >>>>>>> backX = *false*; >>>>>>> >>>>>>> } >>>>>>> >>>>>>> // *Si* *la* *coordonnée* x est *supérieure* à *la* >>>>>>> *taille* *du* *Panneau* *moins* *la* *taille* *du* *rond*, on >>>>>>> *recule* >>>>>>> >>>>>>> *if*(x > pan.getWidth() - 50) { >>>>>>> >>>>>>> backX = *true*; >>>>>>> >>>>>>> } >>>>>>> >>>>>>> // *Idem* pour l'axe y >>>>>>> >>>>>>> *if*(y < 1) { >>>>>>> >>>>>>> backY = *false*; >>>>>>> >>>>>>> } >>>>>>> >>>>>>> *if*(y > pan.getHeight() - 50) { >>>>>>> >>>>>>> backY = *true*; >>>>>>> >>>>>>> } >>>>>>> >>>>>>> >>>>>>> >>>>>>> // *Si* on *avance*, on *incrémente* *la* >>>>>>> *coordonnée* >>>>>>> >>>>>>> // backX est *un* *booléen*, *donc* !backX *revient* >>>>>>> à *écrire* >>>>>>> >>>>>>> // if (backX == false) >>>>>>> >>>>>>> *if*(!backX) { >>>>>>> >>>>>>> pan.setPosX(++x); >>>>>>> >>>>>>> // *Sinon*, on *décrémente* >>>>>>> >>>>>>> } >>>>>>> >>>>>>> *else* { >>>>>>> >>>>>>> pan.setPosX(--x); >>>>>>> >>>>>>> } >>>>>>> >>>>>>> // *Idem* pour l'axe Y >>>>>>> >>>>>>> *if*(!backY) { >>>>>>> >>>>>>> pan.setPosY(++y); >>>>>>> >>>>>>> } >>>>>>> >>>>>>> *else* { >>>>>>> >>>>>>> pan.setPosY(--y); >>>>>>> >>>>>>> } >>>>>>> >>>>>>> >>>>>>> >>>>>>> // On *redessine* *notre* *Panneau* >>>>>>> >>>>>>> pan.repaint(); >>>>>>> >>>>>>> } >>>>>>> >>>>>>> }).start(); >>>>>>> >>>>>>> } >>>>>>> >>>>>>> >>>>>>> >>>>>>> Hope that helps, >>>>>>> >>>>>>> Walter. >>>>>>> >>>>>>> >>>>>>> >>>>>>> *From:* swing-dev [mailto:swing-dev-boun...@openjdk.java.net] *On >>>>>>> Behalf Of *Patrick Chen >>>>>>> *Sent:* maandag 10 april 2017 12:23 >>>>>>> *To:* swing-...@openjdk.java.net >>>>>>> *Subject:* Re: <Swing Dev> JDK-8178091 : Bug I will workin on >>>>>>> >>>>>>> >>>>>>> >>>>>>> (edit : for example this game coded in java : >>>>>>> https://github.com/cloudStrif/GoldenSunD will work with java 7 >>>>>>> >>>>>>> but clearly not with java8 (linux 64 bits) because of lags) >>>>>>> >>>>>>> >>>>>>> >>>>>>> 2017-04-10 12:19 GMT+02:00 Patrick Chen <chen.j.patr...@gmail.com>: >>>>>>> >>>>>>> Hi every one , >>>>>>> >>>>>>> just wanted to inform that I am working to fix this bug. >>>>>>> >>>>>>> >>>>>>> >>>>>>> it is when we devellop animations thanks to repaint() method , >>>>>>> >>>>>>> for java 7 it works well >>>>>>> >>>>>>> but with java8 not , >>>>>>> >>>>>>> (linux 64 bits it doesn't really work ) >>>>>>> >>>>>>> >>>>>>> >>>>>>> so after watching the source code it seem that it is not a swing >>>>>>> problem >>>>>>> >>>>>>> but AWT : Component.java . >>>>>>> >>>>>>> >>>>>>> >>>>>>> thank you >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>> >>> >> >