• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 668
  • Last Modified:

canvas repaint

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

1 Solution
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


Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now