diff --git a/CHANGELOG.md b/CHANGELOG.md index 82d467db..b807b171 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ FlatLaf Change Log #### New features and improvements - Demo: Improved "SplitPane & Tabs" and "Data Components" tabs. - +- Menu items "File > Open" and "File > Save As" now show file choosers. ## 0.41 diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java index 936f59d5..70fc1748 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.java @@ -93,6 +93,16 @@ class DemoFrame state.remove( "hint.themesPanel" ); } + private void openActionPerformed() { + JFileChooser chooser = new JFileChooser(); + chooser.showOpenDialog( this ); + } + + private void saveAsActionPerformed() { + JFileChooser chooser = new JFileChooser(); + chooser.showSaveDialog( this ); + } + private void exitActionPerformed() { dispose(); } @@ -263,6 +273,7 @@ class DemoFrame JMenu fileMenu = new JMenu(); JMenuItem newMenuItem = new JMenuItem(); JMenuItem openMenuItem = new JMenuItem(); + JMenuItem saveAsMenuItem = new JMenuItem(); JMenuItem closeMenuItem = new JMenuItem(); JMenuItem exitMenuItem = new JMenuItem(); JMenu editMenu = new JMenu(); @@ -340,11 +351,18 @@ class DemoFrame fileMenu.add(newMenuItem); //---- openMenuItem ---- - openMenuItem.setText("Open"); + openMenuItem.setText("Open..."); openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); openMenuItem.setMnemonic('O'); - openMenuItem.addActionListener(e -> menuItemActionPerformed(e)); + openMenuItem.addActionListener(e -> openActionPerformed()); fileMenu.add(openMenuItem); + + //---- saveAsMenuItem ---- + saveAsMenuItem.setText("Save As..."); + saveAsMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); + saveAsMenuItem.setMnemonic('S'); + saveAsMenuItem.addActionListener(e -> saveAsActionPerformed()); + fileMenu.add(saveAsMenuItem); fileMenu.addSeparator(); //---- closeMenuItem ---- diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.jfd b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.jfd index d7f1ffd6..13895915 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.jfd +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/DemoFrame.jfd @@ -135,10 +135,17 @@ new FormModel { } ) add( new FormComponent( "javax.swing.JMenuItem" ) { name: "openMenuItem" - "text": "Open" + "text": "Open..." "accelerator": static javax.swing.KeyStroke getKeyStroke( 79, 4226, false ) "mnemonic": 79 - addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "menuItemActionPerformed", true ) ) + addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "openActionPerformed", false ) ) + } ) + add( new FormComponent( "javax.swing.JMenuItem" ) { + name: "saveAsMenuItem" + "text": "Save As..." + "accelerator": static javax.swing.KeyStroke getKeyStroke( 83, 4226, false ) + "mnemonic": 83 + addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "saveAsActionPerformed", false ) ) } ) add( new FormComponent( "javax.swing.JPopupMenu$Separator" ) { name: "separator2"