Progress monitoring for a console app

Discussion in 'Java' started by Roedy Green, Jan 26, 2006.

  1. Roedy Green

    Roedy Green Guest

    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
    --
    Canadian Mind Products, Roedy Green.
    http://mindprod.com Java custom programming, consulting and coaching.
     
    Roedy Green, Jan 26, 2006
    #1
    1. Advertising

  2. Roedy Green

    IchBin Guest

    Roedy Green wrote:
    > 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-)
     
    IchBin, Jan 26, 2006
    #2
    1. Advertising

  3. On Thu, 26 Jan 2006 02:45:52 GMT, Roedy Green wrote:
    > 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

    --
    [ 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
     
    Gordon Beaton, Jan 26, 2006
    #3
  4. "Gordon Beaton" <> wrote in message
    news:43d8817d$...
    > On Thu, 26 Jan 2006 02:45:52 GMT, Roedy Green wrote:
    > > 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
    --
    http://jcsnippets.atspace.com
    a collection of source code, tips and tricks
     
    jcsnippets.atspace.com, Jan 26, 2006
    #4
  5. Roedy Green

    Roedy Green Guest

    On 26 Jan 2006 08:59:57 +0100, Gordon Beaton <> wrote,
    quoted or indirectly quoted someone who said :

    >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.

    This code won't work in Eclipse or Macs.

    see http://mindprod.com/jgloss/progress.html#CONSOLE
    --
    Canadian Mind Products, Roedy Green.
    http://mindprod.com Java custom programming, consulting and coaching.
     
    Roedy Green, Jan 27, 2006
    #5
  6. On Fri, 27 Jan 2006 00:27:40 GMT, Roedy Green wrote:
    > On 26 Jan 2006 08:59:57 +0100, Gordon Beaton <> wrote,
    > quoted or indirectly quoted someone who said :
    >
    >>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

    --
    [ 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
     
    Gordon Beaton, Jan 30, 2006
    #6
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Charlie Zhang
    Replies:
    3
    Views:
    1,273
    Paul Lutus
    Aug 16, 2004
  2. Ben Finney
    Replies:
    2
    Views:
    997
    Egor Bolonev
    Jun 30, 2003
  3. pkellner
    Replies:
    0
    Views:
    504
    pkellner
    Apr 27, 2007
  4. Kris Rudin

    console app w/o seeing console?

    Kris Rudin, Nov 11, 2003, in forum: ASP .Net Datagrid Control
    Replies:
    1
    Views:
    133
    Randy Charles Morin
    Nov 11, 2003
  5. mike
    Replies:
    6
    Views:
    326
    Arne Vajhøj
    Jun 2, 2013
Loading...

Share This Page