<div dir="ltr">edit : So (sorry if I repeat myseft )<div><br></div><div>what I propose : </div><div><br></div><div>webrev : <a href="http://cr.openjdk.java.net/~alexsch/chen.j.patrick/8178091/webrev.01/">http://cr.openjdk.java.net/~alexsch/chen.j.patrick/8178091/webrev.01/</a> </div><div><br></div><div>bug : <span style="font-size:17.6px"> </span><span style="font-size:17.6px">JDK-8178091</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-04-20 11:37 GMT+02:00 Patrick Chen <span dir="ltr"><<a href="mailto:chen.j.patrick@gmail.com" target="_blank">chen.j.patrick@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi , <div>thank you Alexandr ! </div><div><br></div><div>You are right Phil , but for the moment I did a lot of tests , and it seems that there is no problems with this method ...</div><div>so as the bug is only on Linux I check on the method if we are on linux or not , then only I sync() , </div><div>like this , on other system ,it will use the asynchrone repaint() method , </div><div><br></div><div>I think for the moment it is a possible way to correct the <span style="color:rgb(36,41,46);font-family:-apple-system,blinkmacsystemfont,"segoe ui",helvetica,arial,sans-serif,"apple color emoji","segoe ui emoji","segoe ui symbol";font-size:16px">JDK-8178091 bug , </span></div><div><font color="#24292e" face="-apple-system, blinkmacsystemfont, segoe ui, helvetica, arial, sans-serif, apple color emoji, segoe ui emoji, segoe ui symbol"><span style="font-size:16px">of course , it is maybe not final ,</span></font></div><div><font color="#24292e" face="-apple-system, blinkmacsystemfont, segoe ui, helvetica, arial, sans-serif, apple color emoji, segoe ui emoji, segoe ui symbol"><span style="font-size:16px">but it works well.</span></font></div><div><font color="#24292e" face="-apple-system, blinkmacsystemfont, segoe ui, helvetica, arial, sans-serif, apple color emoji, segoe ui emoji, segoe ui symbol"><span style="font-size:16px"><br></span></font></div><div><font color="#24292e" face="-apple-system, blinkmacsystemfont, segoe ui, helvetica, arial, sans-serif, apple color emoji, segoe ui emoji, segoe ui symbol"><span style="font-size:16px">-Pat</span></font></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-04-19 18:27 GMT+02:00 Phil Race <span dir="ltr"><<a href="mailto:philip.race@oracle.com" target="_blank">philip.race@oracle.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><span>
<br>
<br>
<div class="m_5637189673305484719m_-4968148498169643553moz-cite-prefix">On 04/19/2017 12:51 AM, Patrick Chen
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Ok so can you take the source from the git ?</div>
</blockquote>
<br></span>
Sounds the same to me as reviewing it there ..<span><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div>You probably have an account in <span style="font-size:12.8px"> </span><a href="http://cr.openjdk.java.net/" style="font-size:12.8px" target="_blank">cr.openjdk.java.net</a><span style="font-size:12.8px"> , </span></div>
<div><br>
</div>
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px">but Another solution to fix
the bug </span><span style="font-size:17.6px">8178091 </span><span style="font-size:12.8px">is to write a repaint() method from
Component.java </span></div>
<div><span style="font-size:12.8px">(as we all know :
JPanel.java -->(extends) >Jcomponent.java
-->(extends)-> Composent.java) </span></div>
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px">and the repaint() method is
on Component.java </span></div>
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px">So in JPanel.java we add a
method repaint() ;</span></div>
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px">public void repaint(){</span></div>
<div><span style="font-size:12.8px">super.repaint() ; //this
call repaint() from Component.java to reproduce a simple
repaint(); </span></div>
<div><span style="font-size:12.8px">Toolkit.getDefaultToolkit().sy<wbr>nc();</span><br>
</div>
<div><span style="font-size:12.8px">}</span></div>
</div>
</blockquote>
<br></span>
sync sounds to me more like adding a performance problem rather than
fixing one.<br>
I'd be very reluctant to accept such a change in core JDK without
appropriate<br>
performance testing across all affected pipelines and platforms.<br>
<br>
And I don't think it is correct anyway. repaint is asynchronous and
trying<br>
to make it synchronous is redefining it 20 years too late.<br>
<br>
But if you do it yourself in your own code that is up to you ...<br>
<br>
-phil.<div><div class="m_5637189673305484719h5"><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px">so with this each time we
call repaint() ; it call our new repaint() method with the
sync(); </span></div>
<div><span style="font-size:12.8px">and then it works well </span></div>
<div><span style="font-size:12.8px"><br>
</span></div>
<div><span style="font-size:12.8px"><br>
</span></div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2017-04-17 16:24 GMT+02:00 Philip Race
<span dir="ltr"><<a href="mailto:philip.race@oracle.com" target="_blank">philip.race@oracle.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"> Per openjdk rules, we
cannot review or accept webrevs hosted anywhere<br>
other than <a href="http://cr.openjdk.java.net" target="_blank">cr.openjdk.java.net</a>
[1]<br>
<br>
Generally you ask someone who has a login there to do it
for you<br>
<br>
Or you may try submitting the patch in-line to this email
if it is short.<br>
<br>
Not an attachment. It will get stripped.<br>
<br>
-phil.<br>
<br>
[1] <a class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451moz-txt-link-freetext" href="http://openjdk.java.net/guide/changePlanning.html" target="_blank">http://openjdk.java.net/guide/<wbr>changePlanning.html</a>
<div>
<div class="m_5637189673305484719m_-4968148498169643553h5"><br>
<br>
On 4/17/17, 3:42 AM, Patrick Chen wrote:
<blockquote type="cite">
<div dir="ltr"><a href="https://github.com/cloudStrif/webrev" target="_blank">https://github.com/cloudStrif/<wbr>webrev</a><br>
<div><br>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2017-04-17 12:33
GMT+02:00 Patrick Chen <span dir="ltr"><<a href="mailto:chen.j.patrick@gmail.com" target="_blank">chen.j.patrick@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">so here a webrev : </div>
<div class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451HOEnZb">
<div class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">2017-04-12
23:41 GMT+02:00 Sergey Bylokhov <span dir="ltr"><<a href="mailto:sergey.bylokhov@oracle.com" target="_blank">sergey.bylokhov@oracle.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">
<div>(CC) 2d-dev</div>
If some of these options helps
then most probably the bug is in
the Java2D pipeline(XRender?) and
looks like this is duplicate of:
<div><a href="https://bugs.openjdk.java.net/browse/JDK-8068529" target="_blank">https://bugs.openjdk.java.net/<wbr>browse/JDK-8068529</a></div>
<div>
<div class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451m_2937220179101548331h5">
<div><br>
<div><br>
<div>
<blockquote type="cite"><br class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451m_2937220179101548331m_838713136622556381Apple-interchange-newline">
<div>
<div dir="ltr">
<div style="font-size:12.8px">OK
, </div>
<div style="font-size:12.8px">So
I did severals
tests with
theses options
with programms
using full
repaint() method</div>
<div style="font-size:12.8px">,and
it still work
well, </div>
<div style="font-size:12.8px">but
occasionnaly
,the lag is here
again
,particularly
when there are a
lot component on
the screen
(Jpanel screen)</div>
<div style="font-size:12.8px"><br>
</div>
<div style="font-size:12.8px">indeed
, I think it is
not normal that
we need theses
options to work
well ,</div>
<div style="font-size:12.8px">but
it seem the
problem does not
come from Swing
package , but
repaint() method
in AWT package ,</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2017-04-12
21:26 GMT+02:00
Patrick Chen <span dir="ltr"><<a href="mailto:chen.j.patrick@gmail.com" target="_blank">chen.j.patrick@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>OK , </div>
<div>So I did
severals tests
with theses
options with
programms
using full
repaint()
method</div>
<div>,and it
still work
well, </div>
<div>but
occasionnaly
,the lag is
here again
,particularly
when there are
a lot
component on
the screen
(Jpanel
screen)</div>
<div><br>
</div>
<div>indeed ,
I think it is
not normal
that we need
theses options
to work well ,</div>
<div>but it
seem the
problem does
not come from
Swing package
, but
repaint()
method in AWT
package ,</div>
<div><br>
</div>
<div><br>
</div>
</div>
<div class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451m_2937220179101548331m_838713136622556381HOEnZb">
<div class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451m_2937220179101548331m_838713136622556381h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">2017-04-11
19:18
GMT+02:00
Sergey
Bylokhov <span dir="ltr"><<a href="mailto:sergey.bylokhov@oracle.com" target="_blank">sergey.bylokhov@oracle.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><br>
<div><span>
<blockquote type="cite">
<div>
<div dir="ltr">Hi
,
<div>yes ; <br>
<div>with
theses options
it works ! </div>
<div>but what
that means ? </div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
</span>
<div>Is it
works in case
of any options
or in some
cases it does
not work?
Please double
check.</div>
<div>
<div class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451m_2937220179101548331m_838713136622556381m_6948471399694851929h5"><br>
<blockquote type="cite">
<div>
<div dir="ltr">
<div>
<div><br>
</div>
<div>so it not
a bug ? </div>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2017-04-11
18:46
GMT+02:00
Sergey
Bylokhov <span dir="ltr"><<a href="mailto:sergey.bylokhov@oracle.com" target="_blank">sergey.bylokhov@oracle.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">Hi,
Patrick.
<div>Can you
please run the
code using
these options:</div>
<div>-Dsun.java2d.xrender=true<br>
-Dsun.java2d.xrender=false<br>
-Dsun.java2d.opengl=true<br>
-Dsun.java2d.opengl=false</div>
<div>
<div class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451m_2937220179101548331m_838713136622556381m_6948471399694851929m_-1181147467062262085h5">
<div><br>
</div>
<div><br>
<div>
<blockquote type="cite"><br class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451m_2937220179101548331m_838713136622556381m_6948471399694851929m_-1181147467062262085m_6670957414226390050Apple-interchange-newline">
<div>
<div dir="ltr">
<div>After
tests it seems
that the
problem
doesn't come
from Timer ,
but <br>
</div>
<div>the
repaint()
method , </div>
<div><br>
</div>
<div><br>
</div>
<div>even with
this code the
bug is here.</div>
<div>the bug
is on Linux.</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2017-04-11
11:07
GMT+02:00
Walter Laan <span dir="ltr"><<a href="mailto:WLaan@costengineering.eu" target="_blank">WLaan@costengineering.eu</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div link="blue" vlink="purple" lang="NL">
<div class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451m_2937220179101548331m_838713136622556381m_6948471399694851929m_-1181147467062262085m_6670957414226390050m_6914966552159833350WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US">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.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US">It
looks like you
adapted the
code from <a href="http://codereview.stackexchange.com/questions/29630/simple-java-animation-with-swing" target="_blank">
http://codereview.stackexchang<wbr>e.com/questions/29630/simple-j<wbr>ava-animation-with-swing</a>
where no-one
experienced
with Swing
pointed out
this error </span><span style="font-size:11.0pt;font-family:Wingdings;color:#1f497d" lang="EN-US">L</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US">.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US">Using
a
javax.swing.Timer
(not the
java.util.Timer!)
and it runs
okay (using
Win10, Java
8u101):</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">private</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">void</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> go() {</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">new</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> Timer(10, </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">new</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
ActionListener()
{</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f">//
<u>Les</u> <u>coordonnées</u>
<u>de</u> <u>départ</u>
<u>de</u> <u>notre</u>
<u>rond</u></span><span style="font-size:10.0pt;font-family:Consolas"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">private</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">int</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> </span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">x</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> = </span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">pan</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">.getPosX(), </span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">y</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> = </span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">pan</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">.getPosY();</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f" lang="EN-US">//
<u>Le</u> <u>booléen</u>
pour <u>savoir</u>
<u>si</u> l'on
<u>recule</u>
<u>ou</u> non
<u>sur</u>
l'axe x</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">private</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">boolean</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> </span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">backX</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> = </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">false</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">;</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f" lang="EN-US">//
<u>Le</u> <u>booléen</u>
pour <u>savoir</u>
<u>si</u> l'on
<u>recule</u>
<u>ou</u> non
<u>sur</u>
l'axe y</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">private</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">boolean</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> </span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">backY</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> = </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">false</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">;</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#646464" lang="EN-US">@Override</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">public</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">void</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
actionPerformed(ActionEvent
</span><span style="font-size:10.0pt;font-family:Consolas;color:#6a3e3e" lang="EN-US">e</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">) {</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f" lang="EN-US">//
<u>Si</u> <u>la</u>
<u>coordonnée</u>
x est <u>inférieure</u>
à 1, on <u>avance</u></span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">if</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">(</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">x</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> < 1) {</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">backX</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> = </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">false</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">;</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
}</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f" lang="EN-US">//
<u>Si</u> <u>la</u>
<u>coordonnée</u>
x est <u>supérieure</u>
à <u>la</u> <u>taille</u>
<u>du</u> <u>Panneau</u>
<u>moins</u> <u>la</u>
<u>taille</u>
<u>du</u> <u>rond</u>,
on <u>recule</u></span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">if</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">(</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">x</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> > </span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">pan</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">.getWidth() -
50) {</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">backX</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> = </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">true</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">;</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
}</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f" lang="EN-US">//
<u>Idem</u>
pour l'axe y</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">if</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">(</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">y</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> < 1) {</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">backY</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> = </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">false</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">;</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
}</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">if</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">(</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">y</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> > </span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">pan</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">.getHeight() -
50) {</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">backY</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> = </span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">true</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">;</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
}</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f" lang="EN-US">//
<u>Si</u> on <u>avance</u>,
on <u>incrémente</u>
<u>la</u> <u>coordonnée</u></span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f" lang="EN-US">//
backX est <u>un</u>
<u>booléen</u>,
<u>donc</u>
!backX <u>revient</u>
à <u>écrire</u></span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f" lang="EN-US">//
if (backX ==
false)</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">if</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">(!</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">backX</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">) {</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">pan</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">.setPosX(++</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">x</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">);</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f" lang="EN-US">//
<u>Sinon</u>,
on <u>décrémente</u></span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
}</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">else</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> {</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">pan</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">.setPosX(--</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">x</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">);</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
}</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f" lang="EN-US">//
<u>Idem</u>
pour l'axe Y</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">if</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US">(!</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">backY</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">) {</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">pan</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">.setPosY(++</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">y</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">);</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
}</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><b><span style="font-size:10.0pt;font-family:Consolas;color:#7f0055" lang="EN-US">else</span></b><span style="font-size:10pt;font-family:Consolas" lang="EN-US"> {</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">pan</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">.setPosY(--</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0" lang="EN-US">y</span><span style="font-size:10pt;font-family:Consolas" lang="EN-US">);</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
}</span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#3f7f5f" lang="EN-US">//
On <u>redessine</u>
<u>notre</u> <u>Panneau</u></span><span style="font-size:10.0pt;font-family:Consolas" lang="EN-US"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas" lang="EN-US">
</span><span style="font-size:10.0pt;font-family:Consolas;color:#0000c0">pan</span><span style="font-size:10pt;font-family:Consolas">.repaint();</span><span style="font-size:10.0pt;font-family:Consolas"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas">
}</span><span style="font-size:10.0pt;font-family:Consolas"></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10pt;font-family:Consolas">
}).start();</span><span style="font-size:10.0pt;font-family:Consolas"></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas"> }</span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US"></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US">Hope
that helps,</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US">Walter.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d" lang="EN-US"> </span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif" lang="EN-US">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif" lang="EN-US">
swing-dev
[mailto:<a href="mailto:swing-dev-bounces@openjdk.java.net" target="_blank">swing-dev-bounces@open<wbr>jdk.java.net</a>]
<b>On Behalf
Of </b>Patrick
Chen<br>
<b>Sent:</b>
maandag 10
april 2017
12:23<br>
<b>To:</b> <a href="mailto:swing-dev@openjdk.java.net" target="_blank">swing-dev@openjdk.java.net</a><br>
<b>Subject:</b>
Re: <Swing
Dev>
JDK-8178091 :
Bug I will
workin on</span></p>
<div>
<div class="m_5637189673305484719m_-4968148498169643553m_7905026746724040451m_2937220179101548331m_838713136622556381m_6948471399694851929m_-1181147467062262085m_6670957414226390050h5">
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<div>
<p class="MsoNormal">(edit
: for example
this game
coded in java
: <a href="https://github.com/cloudStrif/GoldenSunD" target="_blank">https://github.com/cloudStri<wbr>f/GoldenSunD</a>
will work with
java 7</p>
<div>
<p class="MsoNormal">but
clearly not
with java8
(linux 64
bits) because
of lags)</p>
</div>
</div>
<div>
<p class="MsoNormal"> </p>
<div>
<p class="MsoNormal">2017-04-10
12:19
GMT+02:00
Patrick Chen
<<a href="mailto:chen.j.patrick@gmail.com" target="_blank">chen.j.patrick@gmail.com</a>>:</p>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<p class="MsoNormal">Hi
every one , </p>
<div>
<p class="MsoNormal">just
wanted to
inform that I
am working to
fix this bug.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">it
is when we
devellop
animations
thanks to
repaint()
method , </p>
</div>
<div>
<p class="MsoNormal">for
java 7 it
works well </p>
</div>
<div>
<p class="MsoNormal">but
with java8 not
, </p>
</div>
<div>
<p class="MsoNormal">(linux
64 bits it
doesn't really
work ) </p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">so
after watching
the source
code it seem
that it is not
a swing
problem </p>
</div>
<div>
<p class="MsoNormal">but
AWT :
Component.java
.</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal">thank
you</p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"> </p>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</div>
</div>
</div>
<br>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>