Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

canvas repaint

Posted on 1999-01-21
1
Medium Priority
?
666 Views
Last Modified: 2011-09-20
I have an applet with a class "Square" that extends canvas.
Below is an example of my code :

private Square square;
private TextArea textarea;

public void init () {
     textarea = new TextArea();
     square = new Square();
}

.....   //other codes
.....

public void repaintingCanvas() {
        textarea.append ("testing");       //line 1
        square.repaint();                  //line 2  
        textarea.append ("after testing"); //line 3
        }    


How come I will be able to see the execution of line 1 and line 3 first before seeing the execution of line 2. I tried to "sleep" the applet after line 2, hoping to see the effect of square.repaint()incase it takes time to repaint, but it will still sleep then I can see the words "after testing" in textarea (execution of line 3) and only later will I see the effect of repaint() of the particular canvas.

 Why is this so, is it because I am not optimizing my codes properly or because all directions of applet will be executed first and execution of canvas is done later.

fyi....applet implements runnable

0
Comment
Question by:caphey
1 Comment
 
LVL 16

Accepted Solution

by:
heyhey_ earned 300 total points
ID: 1234475
painting is usually done in another Thread (probably the standard event Thread) so:

- when you call repaint() you just make request for repainting, which may be server some time later.
- when you call repaint from the code that is triggered from some  Event (for example actionPerformed() of a Button) you are working INSIDE the event Thread, so paining (and all other events propagation) will be BLOCKED until you quit the event handler method. sleep() won't help too.

it a standard practice to place all the 'heavy' code inside another Thread, so that you don't block the system event&paint Thread.

if you need more help, you'd better post a small example that reproduces yout problem.

best regards
  heyhey

0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
Suggested Courses

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question