[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-2d-dev
Subject: Re: [OpenJDK 2D-Dev] <Swing Dev> JDK-8178091 : Bug I will workin on
From: Patrick Chen <chen.j.patrick () gmail ! com>
Date: 2017-04-28 16:48:33
Message-ID: CANmuJ8vp9UdJWefKfzVk7qVsNmaym=igs1HeFkZWFhdcsBwX6Q () mail ! gmail ! com
[Download RAW message or body]
yes you are right ,
but I will see the root of the problem it will be better
2017-04-21 1:30 GMT+02:00 Philip Race <philip.race@oracle.com>:
> If appropriate conceptually (and I am not sure it is), then this
> is better addressed in a more localised way in code specific to
> the xrender pipeline which is the only pipeline that has this
> problem .. correct ? And if it is only in this pipeline an investigation
> into the specifics of what is different would be the place to start.
>
> -phil.
>
> On 4/20/17, 5:40 AM, Patrick Chen wrote:
>
> edit : So (sorry if I repeat myseft )
>
> what I propose :
>
> webrev : http://cr.openjdk.java.net/~alexsch/chen.j.patrick/
> 8178091/webrev.01/
>
> bug : JDK-8178091
>
> 2017-04-20 11:37 GMT+02:00 Patrick Chen <chen.j.patrick@gmail.com>:
>
>> Hi ,
>> thank you Alexandr !
>>
>> 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 ...
>> so as the bug is only on Linux I check on the method if we are on linux
>> or not , then only I sync() ,
>> like this , on other system ,it will use the asynchrone repaint() method
>> ,
>>
>> I think for the moment it is a possible way to correct the JDK-8178091
>> bug ,
>> of course , it is maybe not final ,
>> but it works well.
>>
>> -Pat
>>
>> 2017-04-19 18:27 GMT+02:00 Phil Race <philip.race@oracle.com>:
>>
>>>
>>>
>>> On 04/19/2017 12:51 AM, Patrick Chen wrote:
>>>
>>> Ok so can you take the source from the git ?
>>>
>>>
>>> Sounds the same to me as reviewing it there ..
>>>
>>> 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();
>>> }
>>>
>>>
>>> sync sounds to me more like adding a performance problem rather than
>>> fixing one.
>>> I'd be very reluctant to accept such a change in core JDK without
>>> appropriate
>>> performance testing across all affected pipelines and platforms.
>>>
>>> And I don't think it is correct anyway. repaint is asynchronous and
>>> trying
>>> to make it synchronous is redefining it 20 years too late.
>>>
>>> But if you do it yourself in your own code that is up to you ...
>>>
>>> -phil.
>>>
>>>
>>>
>>> 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.race@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.patrick@gmail.com>:
>>>>
>>>>> so here a webrev :
>>>>>
>>>>> 2017-04-12 23:41 GMT+02:00 Sergey Bylokhov <sergey.bylokhov@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.patrick@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.bylokhov@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.bylokhov@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 <WLaan@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-bounces@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.patrick@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
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
[Attachment #3 (text/html)]
<div dir="ltr">yes you are right , <div>but I will see the root of the problem it \
will be better </div><div><br></div></div><div class="gmail_extra"><br><div \
class="gmail_quote">2017-04-21 1:30 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">
If appropriate conceptually (and I am not sure it is), then this<br>
is better addressed in a more localised way in code specific to<br>
the xrender pipeline which is the only pipeline that has this<br>
problem .. correct ? And if it is only in this pipeline an
investigation<br>
into the specifics of what is different would be the place to start.<br>
<br>
-phil.<br>
<br>
On 4/20/17, 5:40 AM, Patrick Chen wrote:
<blockquote type="cite">
<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/%7Ealexsch/chen.j.patrick/8178091/webrev.01/" \
target="_blank">http://cr.openjdk.java.net/~<wbr>alexsch/chen.j.patrick/<wbr>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>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="m_-2016171312742729031HOEnZb">
<div class="m_-2016171312742729031h5">
<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_-2016171312742729031m_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_-2016171312742729031m_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_-2016171312742729031m_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_-2016171312742729031m_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_-2016171312742729031m_5637189673305484719m_-4968148498169643553m_7905026746724040451HOEnZb">
<div \
class="m_-2016171312742729031m_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_-2016171312742729031m_5637189673305484719m_-4968148498169643553m_7905026746724040451m_2937220179101548331h5">
<div><br>
<div><br>
<div>
<blockquote type="cite"><br \
class="m_-2016171312742729031m_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_-2016171312742729031m_5637189673305484719m_-4968148498169643553m_7905026746724040451m_2937220179101548331m_838713136622556381HOEnZb">
<div class="m_-2016171312742729031m_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_-2016171312742729031m_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_-2016171312742729031m_5637189673305484719m_-4968148498169643553m_790502674672 \
4040451m_2937220179101548331m_838713136622556381m_6948471399694851929m_-1181147467062262085h5">
<div><br>
</div>
<div><br>
<div>
<blockquote type="cite"><br \
class="m_-2016171312742729031m_5637189673305484719m_-4968148498169643553m_790502674672 \
4040451m_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_-2016171312742729031m_5637189673305484719m_-4968148498169643553m_790502674672 \
4040451m_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_-2016171312742729031m_5637189673305484719m_-4968148498169643553m_790502674672 \
4040451m_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>
</blockquote>
</div>
</blockquote></div><br></div>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic