From 82bc03d617a2d6e60fae49d17df90fc4ff59f686 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Mon, 26 Aug 2019 13:01:32 +0200 Subject: [PATCH] FlatTestFrame: register F1, F2 and F3 keys to switch to Light, Dark or Test LaF --- .../com/formdev/flatlaf/FlatTestFrame.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatTestFrame.java b/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatTestFrame.java index 1cae74c3..7e28d60d 100644 --- a/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatTestFrame.java +++ b/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatTestFrame.java @@ -91,6 +91,11 @@ public class FlatTestFrame lookAndFeelComboBox.setModel( lafModel ); + // register F1, F2 and F3 keys to switch to Light, Dark or Test LaF + registerSwitchToLookAndFeel( KeyEvent.VK_F1, FlatLightLaf.class.getName() ); + registerSwitchToLookAndFeel( KeyEvent.VK_F2, FlatDarkLaf.class.getName() ); + registerSwitchToLookAndFeel( KeyEvent.VK_F3, FlatTestLaf.class.getName() ); + // register ESC key to close frame ((JComponent)getContentPane()).registerKeyboardAction( e -> { @@ -103,6 +108,15 @@ public class FlatTestFrame closeButton.addActionListener(e -> dispose()); } + private void registerSwitchToLookAndFeel( int keyCode, String lafClassName ) { + ((JComponent)getContentPane()).registerKeyboardAction( + e -> { + selectLookAndFeel( lafClassName ); + }, + KeyStroke.getKeyStroke( keyCode, 0, false ), + JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT ); + } + protected void showFrame( JComponent content ) { this.content = content; @@ -112,6 +126,13 @@ public class FlatTestFrame setVisible( true ); } + private void selectLookAndFeel( String lafClassName ) { + DefaultComboBoxModel lafModel = (DefaultComboBoxModel) lookAndFeelComboBox.getModel(); + int sel = lafModel.getIndexOf( new LafInfo( null, lafClassName ) ); + if( sel >= 0 ) + lookAndFeelComboBox.setSelectedIndex( sel ); + } + private void lookAndFeelChanged() { LafInfo newLaf = (LafInfo) lookAndFeelComboBox.getSelectedItem(); if( newLaf == null )