/** * Sample #7: Same as #6, but use progress bar. */ import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.border.*; public class Swing7 { public static void main( String [] args ) { JFrame f = new JFrame( "Swing Test" ); f.addWindowListener( new WindowAdapter( ) { public void windowClosing( WindowEvent e ) { System.exit( 0 ); } } ); JPanel p = new JPanel( ); JPanel inputs = new JPanel( ); JButton qb = new JButton( "quit" ); final JSlider slide = new JSlider( JSlider.HORIZONTAL, 0, 30, 0 ); slide.setPaintTicks( true ); slide.setMajorTickSpacing( 5 ); slide.setMinorTickSpacing( 1 ); slide.setBorder( new TitledBorder( "Slider" ) ); final JTextField tf = new JTextField( 20 ); tf.setEditable( false ); final JProgressBar pb = new JProgressBar( slide.getMinimum( ), slide.getMaximum( ) ); pb.setStringPainted( true ); inputs.add( qb ); inputs.add( slide ); inputs.setBorder( new TitledBorder( "Inputs" ) ); p.add( inputs ); p.add( tf ); p.add( pb ); f.setContentPane( p ); f.setSize( 300, 250 ); f.setVisible( true ); qb.setMnemonic( 'q' ); qb.setToolTipText( "press to quit" ); qb.addActionListener( new ActionListener( ) { public void actionPerformed( ActionEvent e ) { int option = JOptionPane.showConfirmDialog(null, "OK to exit?", "Verify exit", JOptionPane.YES_NO_OPTION ); if( option == JOptionPane.YES_OPTION ) System.exit( 0 ); } } ); slide.addChangeListener( new ChangeListener( ) { public void stateChanged( ChangeEvent e ) { String str = ""; for( int i = slide.getValue( ); i > 0; i-- ) str += "*"; tf.setText( str ); pb.setValue( slide.getValue( ) ); } } ); } }