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

public class IconSelectorFrame extends ActionFrame {

    public IconSelectorFrame(String imageDirectory) {
        Container cp = getContentPane();
        File f = new File(imageDirectory);
        try {
            File[] files = f.listFiles();
            cp.setLayout(new GridLayout((int)Math.sqrt(files.length),0));
            for (int i=0; i< files.length; i++) {
                try {
                    cp.add(new JButton(new ImageIcon(files[i].getAbsolutePath())));
                } catch (Exception e) {
                    System.out.println("Exception: " + e + " trying to open file " + files[i].getName());
                }
            }
        } catch (Exception e) {
            System.out.println("Exception: " + e);
            System.exit(-1);
        }
    }
    
    public static void main (String[] args) {
        IconSelectorFrame f = new IconSelectorFrame("images"); 
        f.pack();
        f.setVisible(true);
        f.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                }});
    }
    
    public void addActionListener(ActionListener listener) {
        Component[] list = getContentPane().getComponents();
        for (int i = 0; i< list.length; i++)
            ((JButton)list[i]).addActionListener(listener);
    }

    public void actionPerformed(ActionEvent e) {}
    
}
