import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; // simple program to display and continusly run. public class jniProgressBar { static JFrame frame; static JPanel panel; // initialize frame and panel at load time static { frame = new JFrame("This is a test frame ................ ............."); panel = new JPanel(); BoxLayout bl = new BoxLayout( panel, BoxLayout.Y_AXIS ); panel.setLayout( bl ); Container cont = frame.getContentPane(); cont.setLayout( new BorderLayout() ); cont.add( panel, BorderLayout.CENTER ); addProgressBar(); frame.validate(); frame.pack(); frame.setVisible( true ); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); } // add a progress bar to the frame // this method is invoked from native code public static void addProgressBar(){ // add a progress bar to the frame final JProgressBar jpb = new JProgressBar( 0 , 100 ); panel.add( jpb ); // thread that updates progress bar new Thread(){ public void run(){ int i = 0; Vector v = new Vector(); while( true ){ try{ Thread.sleep( 10 ); } catch( Exception e ){ e.printStackTrace();} jpb.setValue( ((i++) % 100 ) ); v.add( new Random().nextInt() ); } } }.start(); panel.add( jpb ); //frame.validate(); frame.pack(); // pause for 3 seconds try{ Thread.sleep( 100 ); } catch ( Exception e ){ e.printStackTrace(); } } }