import java.awt.event.*; import java.awt.*; public class CSortMenuBar extends MenuBar implements ActionListener { private Frame m_SortFrame; // m_SortFrame ist das Frame, das durch den Beenden-Punkt beendet wird. private Menu m_SortMenu; // m_SortMenu ist das Pulldownmenue. private CSortCanvas m_SortCanvas; // m_SortCanvas ist das CSortCanvas, in dem die Sortierung ausgefuehrt werden soll. private Label m_SortierMethode; // m_SortMethode der Label, auf dem die aktuelle Sortiermethode ausgegeben werden soll. public CSortMenuBar(CSortCanvas _SCanvas, Frame _SFrame, Label _SMethode) { super(); m_SortCanvas = _SCanvas; m_SortFrame = _SFrame; m_SortierMethode = _SMethode; m_SortMenu = new Menu("Sortieren"); m_SortMenu.addActionListener(this); m_SortMenu.add("Quicksort"); m_SortMenu.add("Bubblesort"); m_SortMenu.add("Selectionsort"); m_SortMenu.add("Insertionsort"); m_SortMenu.add("Heapsort"); m_SortMenu.add("Mergesort"); m_SortMenu.add("Beenden"); add(m_SortMenu); } private void SortStart(CSortAlg SortAlg) { m_SortCanvas.setSort(SortAlg); m_SortCanvas.init(); m_SortCanvas.StartSort(); } public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if(cmd.equals("Quicksort")) { m_SortierMethode.setText("Quicksort"); m_SortierMethode.repaint(); CQuicksortAlg Sort = new CQuicksortAlg(); SortStart(Sort); } if(cmd.equals("Bubblesort")) { m_SortierMethode.setText("Bubbleort"); m_SortierMethode.repaint(); CBubblesortAlg Sort = new CBubblesortAlg(); SortStart(Sort); } if(cmd.equals("Selectionsort")) { m_SortierMethode.setText("Selectionsort"); m_SortierMethode.repaint(); CSelectionsortAlg Sort = new CSelectionsortAlg(); SortStart(Sort); } if(cmd.equals("Insertionsort")) { m_SortierMethode.setText("Insertionsort"); m_SortierMethode.repaint(); CInsertionsortAlg Sort = new CInsertionsortAlg(); SortStart(Sort); } if(cmd.equals("Heapsort")) { m_SortierMethode.setText("Heapsort"); m_SortierMethode.repaint(); CHeapsortAlg Sort = new CHeapsortAlg(); SortStart(Sort); } if(cmd.equals("Mergesort")) { m_SortierMethode.setText("Mergesort"); m_SortierMethode.repaint(); CMergesortAlg Sort = new CMergesortAlg(); SortStart(Sort); } if(cmd.equals("Beenden")) { m_SortFrame.dispose(); System.exit(0); } } }