/** * Sample #6: Same as #5, but use slider to control number of xs. */ import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.border.*; public class Swing6 { 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 ); inputs.add( qb ); inputs.add( slide ); inputs.setBorder( new TitledBorder( "Inputs" ) ); p.add( inputs ); p.add( tf ); f.setContentPane( p ); f.setSize( 300, 150 ); 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 ); } } ); } }