Class Stack examples // Testing the Stack class of the java.util package import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class StackTest extends JFrame { public StackTest() { super( "Stacks" ); Container c = getContentPane(); final JLabel status = new JLabel(); final Stack s = new Stack(); c.setLayout( new FlowLayout() ); c.add( new JLabel( "Enter a string" ) ); final JTextField input = new JTextField( 10 ); c.add( input ); JButton pushBtn = new JButton( "Push" ); pushBtn.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { status.setText( "Pushed: " + s.push( input.getText() ) ); } } ); c.add( pushBtn ); JButton popBtn = new JButton( "Pop" ); popBtn.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { try { status.setText( "Popped: " + s.pop() ); } catch ( EmptyStackException exception ) { status.setText( exception.toString() ); } } } ); c.add( popBtn ); JButton peekBtn = new JButton( "Peek" ); peekBtn.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { try { status.setText( "Top: " + s.peek() ); } catch ( EmptyStackException exception ) { status.setText( exception.toString() ); } } } ); c.add( peekBtn ); JButton emptyBtn = new JButton( "Is Empty?" ); emptyBtn.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { status.setText( s.empty() ? "Stack is empty" : "Stack is not empty" ); } } ); c.add( emptyBtn ); JButton searchBtn = new JButton( "Search" ); searchBtn.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { String searchKey = input.getText(); int result = s.search( searchKey ); if ( result == -1 ) status.setText( searchKey + " not found" ); else status.setText( searchKey + " found at element " + result ); } } ); c.add( searchBtn ); JButton displayBtn = new JButton( "Display" ); displayBtn.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent e ) { Enumeration enum = s.elements(); StringBuffer buf = new StringBuffer(); while ( enum.hasMoreElements() ) buf.append( enum.nextElement() ).append( " " ); JOptionPane.showMessageDialog( null, buf.toString(), "Display", JOptionPane.PLAIN_MESSAGE ); } } ); c.add( displayBtn ); c.add( status ); setSize( 675, 100 ); show(); } public static void main( String args[] ) { StackTest app = new StackTest(); app.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit( 0 ); } } ); } }