Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #730

Re: Question about updati

From "Knute Johnson" <knute.johnson@THRWHITE.remove-dii-this>
Subject Re: Question about updati
Message-ID <1vRrh.153489$Pv5.34240@newsfe17.lga> (permalink)
Newsgroups comp.lang.java.gui
References <1169142559.270713.220110@l53g2000cwa.googlegroups.com>
Date 2011-04-27 15:29 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui
steen@jost.dk wrote:
> Hey all,
> 
> I've been so "lucky" that I've inherited a big applet that I would like
> to improve.
> 
> It has a set of buttons that perform some very lengthy processes and I
> would like to add a progressbar to it, so the user can see that
> something is actually happening..;)
> 
> But I cant quite get it to work. The following code shows how the code
> is right now, can anyone tell me how I get the loop inside the
> MouseAdapter to actually update the progressbar ? (The code needs to be
> 1.3 compliant)
> 
> The solution is probably very straightforward, but this is my first
> adventure into the world of Swing...:)
> 
> [code]
> public class SwingTest extends JFrame {
> 
>     static JProgressBar bar;
> 
>     public static void main(String[] args) {
>         SwingTest t = new SwingTest();
>         t.setVisible(true);
>         t.setLayout(new FlowLayout());
>         bar = new JProgressBar();
>         JButton button = new JButton("CLICK");
>         button.setSize(100,20);
>         t.add(button);
>         t.add(bar);
>         bar.setMinimum(0);
>         bar.setMaximum(100);
>         t.pack();
>         button.addMouseListener(new MouseAdapter() {
>             public void mouseClicked(MouseEvent ev) {
>                 for (int i=0; i<101;i++) {
>                     bar.setValue(i);
>                     try {
>                         Thread.sleep(500);
>                     } catch (InterruptedException e) {
>                         e.printStackTrace();
>                     }
>                 }
>            }
>         });
>         while (true) {
>             try {
>                 Thread.sleep(10000);
>             } catch (InterruptedException e) {
>                 e.printStackTrace();
>             }
>         }
>     }
> }
> [/code]
> 

You are blocking the event dispatch thread by not returning immediately 
from the mouse listener.  Start a thread running in the mouse listener 
and have that update your progress bar.

-- 

Knute Johnson
email s/nospam/knute/

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Question about updating c "steen" <steen@THRWHITE.remove-dii-this> - 2011-04-27 15:29 +0000
  Re: Question about updati "Knute Johnson" <knute.johnson@THRWHITE.remove-dii-this> - 2011-04-27 15:29 +0000
  Re: Question about updati "Fred Kleinschmidt" <fred.kleinschmidt@THRWHITE.remove-dii-this> - 2011-04-27 15:29 +0000

csiph-web