Solved

canvas repaint

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
firstswap challenge 20 67
Java passing arguments (type error) 2 48
Java - Why doesn't this JFrame work 3 41
configure dependency in POM for new database 3 16
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…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.

911 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

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now