
Signature
Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.
> What sorts of trick have you used in console-only apps to let the user
> know the program is still alive without filling up screens full of
> junk?
>
> For guis, see http://mindprod.com/jgloss/progress.html
For the HSQLDB product, in the package
org.hsqldb.util.DatabaseManagerSwing class I could not add a progress
bar because it did not make sense for this app. I added a panel at the
bottom of the screen with a button(with Icon) and a JLabel as my output
status message area. Then wrote a method so other methods could set the
status icon(red or Green) and message based on processing mode. So
visually you would know the states and what it was or was not doing.
If you do not have the product I have some screenshots here:
http://weconsultants.servebeer.com/JHackerAppManager/Portal?xpc=1$@5
To setup the status panel it went something like this..
jStatusLine = new JLabel();
iReadyStatus = new JButton(new
ImageIcon(CommonSwing.getIcon("StatusReady")));
iReadyStatus.setSelectedIcon(
new ImageIcon(CommonSwing.getIcon("StatusRunning")));
pStatus = new JPanel();
pStatus.setLayout(new BorderLayout());
pStatus.add(iReadyStatus, BorderLayout.WEST);
pStatus.add(jStatusLine, BorderLayout.CENTER);
fMain.getContentPane().add(pStatus, "South");
The source for the HSQLDB project can be found at their website if you
want to look at...either download the jar file or look at it cvs
http://hsqldb.org/
Thanks in Advance...
IchBin, Pocono Lake, Pa, USA
http://weconsultants.servebeer.com/JHackerAppManager
__________________________________________________________________________
'If there is one, Knowledge is the "Fountain of Youth"'
-William E. Taylor, Regular Guy (1952-)
> What sorts of trick have you used in console-only apps to let the
> user know the program is still alive without filling up screens full
> of junk?
This is a classic mechanism:
static char spins[] = { '-', '\\', '|', '/' };
static int pos = 0;
static void spinner() {
System.out.print(spins[pos] + "\r");
pos = (pos + 1) % 4;
}
Call spinner() occasionally while doing your work. It gives the user
an indication that the program hasn't died as well as some idea of the
rate it's progressing.
You get a similar effect with "bubbles" instead:
static char bubbles[] = { '.', 'o', 'O', 'o', '.' };
/gordon

Signature
[ do not email me copies of your followups ]
g o r d o n + n e w s @ b a l d e r 1 3 . s e
jcsnippets.atspace.com - 26 Jan 2006 19:38 GMT
> > What sorts of trick have you used in console-only apps to let the
> > user know the program is still alive without filling up screens full
[quoted text clipped - 13 lines]
> an indication that the program hasn't died as well as some idea of the
> rate it's progressing.
I was going to suggest calculating the percentage of work that still needs
to be done, and writing that to the screen. If 1% of the work would take a
long time, the user still wouldn't have a clue whether or not the program
had died.
Very nice classic!
Kind regards,
JC
--
http://jcsnippets.atspace.com
a collection of source code, tips and tricks
Roedy Green - 27 Jan 2006 00:27 GMT
>static char spins[] = { '-', '\\', '|', '/' };
> static int pos = 0;
[quoted text clipped - 3 lines]
> pos = (pos + 1) % 4;
> }
I have gussied this up a bit and written test harness.
This code won't work in Eclipse or Macs.
see http://mindprod.com/jgloss/progress.html#CONSOLE

Signature
Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.
Gordon Beaton - 30 Jan 2006 08:11 GMT
>>static char spins[] = { '-', '\\', '|', '/' };
>> static int pos = 0;
[quoted text clipped - 4 lines]
>> }
> I have gussied this up a bit and written test harness.
Too bad a plugin is required to see that.
> This code won't work in Eclipse or Macs.
Try \b instead of \r, which should work on more platforms and has the
added advantage that you can use the spinner at the *end* of a line
with some text explaining what's going on:
Please wait while your disk is reformated...
(you get the idea).
/gordon

Signature
[ do not email me copies of your followups ]
g o r d o n + n e w s @ b a l d e r 1 3 . s e