I've been banging my head on this for a while now. In run() everything is peachy if I use show(). I'm pretty sure I need to use repaint() if I want to move the figure around the board without tracers. also, the thread doesn't quit when I close the app, but that's not my big problem now.
heres the code (all of it) edited, compiled and run in BlueJ
First, I note that in your haste to come in and ask a question, you seem to have missed reading our policy on display names, which quite clearly states that you must use a real (sounding) first and last name for your display name -- no joke names, "handles," or last initials are acceptable. You can fix your display name here. We take this policy rather seriously. Thanks for your cooperation!
Second, your problem: this ought to work, more or less, if you get the JFrame to appear on the screen by calling setVisible(true) in your constructor.
As far as the threads not stopping: graphics programs simply won't quit unless you, one way or another, arrange to have System.exit() be called; usually just by calling setDefaultCloseOperation() on your JFrame.
I should point out that you're mixing AWT and Swing techniques here. With Swing, you don't override paint(), but rather paintComponent(); you always call super.paintComponent(); and you don't need to override update(). Typically you'd write a subclass of a JPanel, not a JFrame, and add that JPanel to an "off-the-shelf" JFrame.
Finally, we've got a Swing/AWT forum here where this post would fit right in. I'm going to move it there. See you around the Ranch!
I'm sure Michael's code is going to be a big improvement flicker-wise; the JPanel class implements double-buffering internally, and he's doing things the Swing way, as I suggested.
Art Vandelay is the fake name George Costanza gave to prospective dates and employers, etc. A famous fake name is worse, I think, than what you started with! Can we go with something a bit less flashy, please? "Joe Finn" sounds nice.
Joined: Aug 07, 2005
wow. that's slick; I got a long way to go... thanks for your help, Jeff
subject: repaint() won't call paint() and I'm out of ideas why