From c6290cd6745d9d8a893be17b9312c33d4935214b Mon Sep 17 00:00:00 2001 From: Doublestrike Date: Thu, 1 Sep 2011 04:07:48 +0000 Subject: [PATCH] ESC key can now close the splash frame. --- .../java/forge/view/swing/SplashFrame.java | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/src/main/java/forge/view/swing/SplashFrame.java b/src/main/java/forge/view/swing/SplashFrame.java index 26561ec0331..b3413b40c66 100644 --- a/src/main/java/forge/view/swing/SplashFrame.java +++ b/src/main/java/forge/view/swing/SplashFrame.java @@ -6,12 +6,14 @@ import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import javax.swing.AbstractAction; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JLabel; +import javax.swing.KeyStroke; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; @@ -99,16 +101,7 @@ public class SplashFrame extends JFrame { btnClose.setFocusPainted(false); contentPane.add(btnClose); - btnClose.addActionListener(new ActionListener() - { - @Override - public void actionPerformed(ActionEvent ae) - { - setSplashHasBeenClosed(true); - dispose(); - } - }); - + // Action handler: button hover effect btnClose.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseEntered(java.awt.event.MouseEvent evt) { btnClose.setBorder(BorderFactory.createLineBorder(Color.white)); @@ -121,7 +114,15 @@ public class SplashFrame extends JFrame { } }); - // BG fills up with progress bar??? + // Action handler: button close + btnClose.addActionListener(new closeAction()); + + // Action handler: esc key close + contentPane.getInputMap().put( + KeyStroke.getKeyStroke( "ESCAPE" ), "escAction" ); + + contentPane.getActionMap().put("escAction", new closeAction()); + // Instantiate model and view and tie together. monitorModel = new SplashProgressModel(); @@ -179,5 +180,18 @@ public class SplashFrame extends JFrame { public final void setSplashHasBeenClosed(boolean neoState) { SplashHasBeenClosed = neoState; } + + /** + *

closeAction

+ * Closes the splash frame by toggling "has been closed" switch + * (to cancel preloading) and dispose() (to discard JFrame). + * @param SplashHasBeenClosed boolean. + */ + private class closeAction extends AbstractAction { + public void actionPerformed(ActionEvent e) { + setSplashHasBeenClosed(true); + dispose(); + } + } }