import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 
import javax.swing.*; 

public class BadProgram { 
   
  JFrame frame;
  DefaultListModel model;

  public BadProgram() {
    model = new DefaultListModel();
    frame = new JFrame();
    JList list = new JList(model);
    JScrollPane  scrollpane = new JScrollPane(list);
    JPanel p = new JPanel();
    p.add(scrollpane);
    frame.getContentPane().add(p, "Center"); 
    JButton b = new JButton("Fill List"); 
    p = new JPanel(); 
    p.add(b); 
    frame.getContentPane().add(p, "North"); 
    b.addActionListener(new ActionListener() { 
       public void actionPerformed(ActionEvent event) { 
         WorkingThread t = new WorkingThread(); t.start(); }
    });
    frame.pack();
    frame.setVisible(true);
  }

  public static void main(String[] args) { 
    BadProgram b = new BadProgram(); 
  } 

  class WorkingThread extends Thread {
    public void run() {
      Random generator = new Random();
      System.out.println("Working Thread!!!");
      while (true) { 
        Integer i = new Integer(generator.nextInt(10)); 
        if (model.contains(i)) 
          model.removeElement(i); 
        else 
          model.addElement(i); 
        Thread.yield();
      } 
    }
  }
} 
