From 75bd5997dfc31e8d06fd2fb84f9abd9aec7680d9 Mon Sep 17 00:00:00 2001 From: Thibaud Date: Wed, 19 Feb 2025 12:15:39 +0100 Subject: [PATCH] add menubar --- src/main/java/ovh/gasser/newshapes/App.java | 21 +++++++++++++++++++ .../ovh/gasser/newshapes/ui/Controller.java | 4 ---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/main/java/ovh/gasser/newshapes/App.java b/src/main/java/ovh/gasser/newshapes/App.java index 76867d7..6c30b8d 100644 --- a/src/main/java/ovh/gasser/newshapes/App.java +++ b/src/main/java/ovh/gasser/newshapes/App.java @@ -17,12 +17,19 @@ public class App { final JFrame frame = new JFrame("Reactive shapes"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); buildModel(); + final ShapesView view = new ShapesView(this.model); view.setPreferredSize(WIN_SIZE); + view.setFocusable(true); + var res = view.requestFocusInWindow(); + assert res; + frame.getContentPane().add(view, BorderLayout.CENTER); frame.setContentPane(view); frame.pack(); frame.setVisible(true); + + this.buildMenuBar(frame); } private void buildModel() { @@ -37,6 +44,20 @@ public class App { ); } + private void buildMenuBar(JFrame frame) { + var menubar = new JMenuBar(); + + var helpMenu = new JMenu("Help"); + var aboutItem = new JMenuItem("About"); + aboutItem.addActionListener(actionEvent -> { + JOptionPane.showMessageDialog(frame, "New shapes"); + }); + helpMenu.add(aboutItem); + + menubar.add(helpMenu); + frame.setJMenuBar(menubar); + } + public static void main(String[] args) { SwingUtilities.invokeLater(App::new); } diff --git a/src/main/java/ovh/gasser/newshapes/ui/Controller.java b/src/main/java/ovh/gasser/newshapes/ui/Controller.java index 9d79ee1..a072ee5 100644 --- a/src/main/java/ovh/gasser/newshapes/ui/Controller.java +++ b/src/main/java/ovh/gasser/newshapes/ui/Controller.java @@ -39,10 +39,6 @@ public class Controller { }; this.view.addMouseMotionListener(adapter); this.view.addMouseListener(adapter); - - this.view.setFocusable(true); - boolean res = this.view.requestFocusInWindow(); - assert res; this.view.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) {