import javax.swing.*;
+import javax.swing.text.DefaultEditorKit;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.util.ArrayList;
public class MainWindowsView extends JFrame {
- MainWindowsView(String title) {
+
+ MainWindowsView(String title, JPanel panel) {
//Create and set up the window.
setTitle(title);
+ setSize(300, 300);
+ setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JPanel panel = new PersonView();
+ //Create menu
+ JMenuBar menuBar = createMenuBar();
+ setJMenuBar(menuBar);
- //TODO: Add content to the panel
- //JLabel label = new JLabel("Hello World");
- //panel.add(label);
+ //Get all Swing/AWT JPanel in the views and add them to the main panel.
+ ArrayList<Component> components = new ArrayList<>();
+ for (int i = 0; i < panel.getComponentCount(); i++) {
+ components.add(panel.getComponent(i));
+ }
+ for (Component component : components) {
+ panel.add(component);
+ }
- getContentPane().add(panel);
+ setContentPane(panel);
+ }
+
+ /**
+ * Create menu that support cut/copy/paste.
+ */
+ public JMenuBar createMenuBar() {
+ JMenuItem menuItem;
+ JMenuBar menuBar = new JMenuBar();
+
+ JMenu fileMenu = new JMenu("File");
+
+ menuItem = new JMenuItem("Exit");
+ menuItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ System.exit(0);
+ }
+ });
+ fileMenu.add(menuItem);
+
+ JMenu editMenu = new JMenu("Edit");
+ editMenu.setMnemonic(KeyEvent.VK_E);
+
+ menuItem = new JMenuItem(new DefaultEditorKit.CutAction());
+ menuItem.setText("Cut");
+ menuItem.setMnemonic(KeyEvent.VK_T);
+ editMenu.add(menuItem);
+
+ menuItem = new JMenuItem(new DefaultEditorKit.CopyAction());
+ menuItem.setText("Copy");
+ menuItem.setMnemonic(KeyEvent.VK_C);
+ editMenu.add(menuItem);
+
+ menuItem = new JMenuItem(new DefaultEditorKit.PasteAction());
+ menuItem.setText("Paste");
+ menuItem.setMnemonic(KeyEvent.VK_P);
+ editMenu.add(menuItem);
+
+ menuBar.add(fileMenu);
+ menuBar.add(editMenu);
+ return menuBar;
}
/**
public void showGUI() {
//Display the window.
- this.pack();
+ //this.pack();
this.setVisible(true);
}
-
-}
+}
\ No newline at end of file