// CS 102, U of C, Spring 2006 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class Shuffler implements ActionListener { // GUI components private JButton enterButton; private JButton shuffleButton; private JButton resetButton; private JTextField tf; private JLabel names; private JPanel subPanel; private JPanel mainPanel; private JFrame mainFrame; // logical private LinkedList ss; public Shuffler() { ss = new LinkedList(); enterButton = new JButton(); enterButton.setText("Enter"); enterButton.addActionListener(this); shuffleButton = new JButton(); shuffleButton.setText("Shuffle"); shuffleButton.addActionListener(this); resetButton = new JButton(); resetButton.setText("Reset"); resetButton.addActionListener(this); tf = new JTextField(); names = new JLabel(); names.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); subPanel = new JPanel(new GridLayout(4,1)); subPanel.add(tf); subPanel.add(enterButton); subPanel.add(shuffleButton); subPanel.add(resetButton); mainPanel = new JPanel(new GridLayout(1,2)); mainPanel.add(subPanel); mainPanel.add(names); JFrame.setDefaultLookAndFeelDecorated(true); mainFrame = new JFrame("Shuffler"); mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainFrame.add(mainPanel); mainFrame.pack(); mainFrame.setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == enterButton) { String s = tf.getText(); if (s.length() > 0) ss.add(s); tf.setText(""); } else if (e.getSource() == shuffleButton) { Random r = new Random(System.currentTimeMillis()); int size = ss.size(); for (int i=0; i(); } String d = ""; for (String s : ss) d += s + "
"; d += ""; names.setText(d); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { Shuffler cg = new Shuffler(); } }); } }