aspose file tools*
The moose likes Swing / AWT / SWT and the fly likes drawstring on canvas Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "drawstring on canvas" Watch "drawstring on canvas" New topic
Author

drawstring on canvas

Dennis Riggs
Greenhorn

Joined: Mar 24, 2001
Posts: 9
I have seven buttons. Each button draws a different string. In my actionlistener method, I first call repaint to clear the canvas, then I draw the string. Unfortunatly, after clearing the canvas, the new text is drawn, then repainted again. Any solutions?
thanks,
dennis
Cindy Glass
"The Hood"
Sheriff

Joined: Sep 29, 2000
Posts: 8521
Some code would help.


"JavaRanch, where the deer and the Certified play" - David O'Meara
Dennis Riggs
Greenhorn

Joined: Mar 24, 2001
Posts: 9
Thanks Cindy,
Here is the paint method:

The system.out is for my troubleshooting. If you have a clue, I'd appreciate some help.
thanks,
dennis
(edited by Cindy to format code)
[This message has been edited by Cindy Glass (edited March 26, 2001).]
Cindy Glass
"The Hood"
Sheriff

Joined: Sep 29, 2000
Posts: 8521
Try reading this painting tutorial: http://java.sun.com/docs/books/tutorial/uiswing/overview/draw.html
[This message has been edited by Cindy Glass (edited March 26, 2001).]
Dennis Riggs
Greenhorn

Joined: Mar 24, 2001
Posts: 9
Thanks for the tip. Although the link refers to swing, does the Opaque also work for AWT?
thanks,
dennis
Cindy Glass
"The Hood"
Sheriff

Joined: Sep 29, 2000
Posts: 8521
Well the AWT components get their opaque window from the native window.
This is a rather old article disussing how to turn heavyweight AWT components into lightweight components - which is exactly what Swing does for you: http://java.sun.com/products//jdk/1.2/docs/guide/awt/designspec/lightweights.html
Dennis Riggs
Greenhorn

Joined: Mar 24, 2001
Posts: 9
You may consider me dense if you like. It seems maybe I haven't communicated my problem very well, or Java is much more verbose than I thought it was. When I run my code above, the expected system.out should be 1st: "I'm at Paint" then second, "I'm at btn 2" however just the oppisite occurs. In order to get around this, do I truely need to worry about Opaque, and lightweight controls? Or is there something I can do with my present code to solve the problem that Paint is actually called before my drawstring instead of after? thanks with your patience.
Cindy Glass
"The Hood"
Sheriff

Joined: Sep 29, 2000
Posts: 8521
Sorry I though that they were two separate questions.
I would think that calling repaint inside paint would cause a problem, however let's move this to AWT/Swing and see if you get some better suggestions.
Nathan Pruett
Bartender

Joined: Oct 18, 2000
Posts: 4121

Dennis,
What you are going to want to do is paint the string in the paint method no matter what, then set the string with the buttons... if you don't need a string to paint, simply paint an empty string... here's some code to illustrate the concept.

HTH,
-Nate


-Nate
Write once, run anywhere, because there's nowhere to hide! - /. A.C.
Dennis Riggs
Greenhorn

Joined: Mar 24, 2001
Posts: 9
That is an excellent suggestion. I shall give is a go.
thanks much,
dennis
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: drawstring on canvas