Solved

canvas repaint

Posted on 1999-01-21
1
660 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 100 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

Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

Question has a verified solution.

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

Suggested Solutions

INTRODUCTION Working with files is a moderately common task in Java.  For most projects hard coding the file names, using parameters in configuration files, or using command-line arguments is sufficient.   However, when your application has vi…
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
The viewer will learn how to implement Singleton Design Pattern in Java.

820 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