package arrays; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class SortProfiler extends JFrame { JButton setButton = new JButton("Set"); JButton seqSortButton = new JButton("Selection Sort"); JButton bubSortButton = new JButton("Bubble Sort"); JTextField sizeField = new JTextField(10); JTextField timeSeqField = new JTextField(10); JTextField timeBubField = new JTextField(10); JLabel sizeLabel = new JLabel("Array size:"); JLabel timeSeqLabel = new JLabel("Seq sort time:"); JLabel timeBubLabel = new JLabel("Bubble sort time:"); int X[] = null; class SizeSetter implements ActionListener { public void actionPerformed(ActionEvent e) { int N = Integer.parseInt(sizeField.getText()); X = new int[N]; for (int i = 0; i < N; i++) X[i] = (int)(N*Math.random()); sizeField.setText("array initialized ..."); } } class SeqSorter implements ActionListener { public void actionPerformed(ActionEvent e) { long start = System.nanoTime(); ArrayTest.selectionSort(X); long stop = System.nanoTime(); timeSeqField.setText(String.valueOf(stop-start)); } } class BubSorter implements ActionListener { public void actionPerformed(ActionEvent e) { long start = System.nanoTime(); ArrayTest.bubbleSort(X); long stop = System.nanoTime(); timeBubField.setText(String.valueOf(stop-start)); } } public SortProfiler() { super("Sort Profiler"); JPanel inputPanel = new JPanel(new FlowLayout()); inputPanel.add(sizeLabel); inputPanel.add(sizeField); inputPanel.add(setButton); JPanel outputPanel = new JPanel(new GridLayout(2, 2)); outputPanel.add(timeSeqLabel); outputPanel.add(timeSeqField); outputPanel.add(timeBubLabel); outputPanel.add(timeBubField); JPanel buttonPanel = new JPanel(new FlowLayout()); buttonPanel.add(seqSortButton); buttonPanel.add(bubSortButton); getContentPane().setLayout(new BorderLayout()); getContentPane().add("North", inputPanel); getContentPane().add("Center", outputPanel); getContentPane().add("South", buttonPanel); setButton.addActionListener(new SizeSetter()); seqSortButton.addActionListener(new SeqSorter()); bubSortButton.addActionListener(new BubSorter()); pack(); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String args[]) { SortProfiler sp = new SortProfiler(); } }