import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; // NOTHING to change in this class, only change hashFunction method in HashTest class. public class Main extends javax.swing.JFrame implements MouseListener { HashTest hashTest; static Random rand = new Random(12345); public void mouseClicked(MouseEvent mouseEvent) { int num_bins = (rand.nextInt(10)+1) * 13; hashTest = new HashTest( num_bins ); repaint(); } public void paint(Graphics g) { super.paint(g); hashTest.addGraphics(g, this.getWidth(), this.getHeight()); } public Main() { hashTest = new HashTest(26); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setSize(900, 500); setTitle("Hash function data distribution"); this.addMouseListener(this); } public static void main(String[] args) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Main().setVisible(true); } }); } // Other mouse listener event handlers (NOT needed for our purposes, just leave blank) public void mouseEntered(MouseEvent arg0) { } public void mouseExited(MouseEvent arg0) { } public void mousePressed(MouseEvent arg0) { } public void mouseReleased(MouseEvent arg0) { } }