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.stackexchang >>> e.com/questions/29630/simple-java-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-dev@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 >>> >>> >>> >>> >>> >>> >>> >> >> >> > >