Re: threads and GUIs
LC's No-Spam Newsreading account wrote:
I'm an occasional java [sic] programmer for my own utilities. Some applets and
servlets, and few standalone applications.
...
*) standalone with swing [sic] is also OK
The only other swing [sic] standalone application I had (and which I routinely
use), was based on a standard tutorial. Let's call it myClass ...
Class names by convention should begin with an upper-case letter.
...
*) putting swing [sic] and threads together
In the next step I designed the layout of my new GUI and used
the same paradigm as above
- the "monitor" class extends JPanel
Class names by convention should begin with an upper-case letter.
- its main() calls invokeLater to run() a createAndShowGUI() wrapper.
- the wrapper creates a frame with a new myGui()
- myGui generates all the gui with buttons etc.
Now, where should I run my (time-consuming) threads ? So far I
<http://java.sun.com/javase/6/docs/api/javax/swing/SwingWorker.html>
started with a single thread (the most time-consuming). I was unsure
whether to put it into a monitor() METHOD or in a new monitor()
CONSTRUCTOR.
Don't start threads from constructors.
...
Note that monitor() does no graphics of its own. I tried also with a
monitor() method, and to call it in various places, but with obviously
worse results (e.g. monitor() giving null pointer if GUI start is not
completed, the GUI waiting to show up until monitor() threads are
completed, monitor() giving null pointer when trying to write to a
message area in the GUI, or simply monitor can run once, but a new run
is ineffective)
Cannot fully answer without <http://sscce.org/>, but I'm betting it has
something to do with trying to spawn a thread from a constructor.
All that 'dummy=null' stuff is highly suspicious, too.
--
Lew