Progress monitoring for a console app

I

IchBin

Roedy said:
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-)
 
G

Gordon Beaton

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
 
J

jcsnippets.atspace.com

Gordon Beaton said:
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.

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
 
G

Gordon Beaton

static char spins[] = { '-', '\\', '|', '/' };
static int pos = 0;

static void spinner() {
System.out.print(spins[pos] + "\r");
pos = (pos + 1) % 4;
}
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top