1 package nl.tudelft.jpacman.ui;
2
3 import java.util.Map;
4
5 import javax.swing.JButton;
6 import javax.swing.JFrame;
7 import javax.swing.JPanel;
8
9 /**
10 * A panel containing a button for every registered action.
11 *
12 * @author Jeroen Roosen
13 */
14 class ButtonPanel extends JPanel {
15
16 /**
17 * Default serialisation ID.
18 */
19 private static final long serialVersionUID = 1L;
20
21 /**
22 * Create a new button panel with a button for every action.
23 * @param buttons The map of caption - action for each button.
24 * @param parent The parent frame, used to return window focus.
25 */
26 ButtonPanel(final Map<String, Action> buttons, final JFrame parent) {
27 super();
28 assert buttons != null;
29 assert parent != null;
30
31 for (final String caption : buttons.keySet()) {
32 JButton button = new JButton(caption);
33 button.addActionListener(e -> {
34 buttons.get(caption).doAction();
35 parent.requestFocusInWindow();
36 });
37 add(button);
38 }
39 }
40 }