//$Header: /cvsroot-fuse/mec-as2/39/mendelson/util/LockingGlassPane.java,v 1.1 2012/04/18 14:10:41 heller Exp $ package de.mendelson.util; import java.awt.Color; import java.awt.Graphics; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JPanel; /* * Copyright (C) mendelson-e-commerce GmbH Berlin Germany * * This software is subject to the license agreement set forth in the license. * Please read and agree to all terms before using this software. * Other product and brand names are trademarks of their respective owners. */ /**Panel that could be used as glass pane. It will gray out the underlaying componet * and prevent any user interaction with it. * * Lock the component: Add a glasspane that prevents any action on the UI * private void lock() { * //init glasspane for first use * if (!(this.getGlassPane() instanceof LockingGlassPane)) { * this.setGlassPane(new LockingGlassPane()); * } * this.getGlassPane().setVisible(true); * this.getGlassPane().requestFocusInWindow(); * } * *Unlock the component: remove the glasspane that prevents any action on the UI * private void unlock() { * getGlassPane().setVisible(false); * } * * *@author S.Heller *@version $Revision: 1.1 $ */ public class LockingGlassPane extends JPanel { public LockingGlassPane() { this.setOpaque(false); this.setBackground(new Color(0, 0, 0, 25)); this.addMouseListener(new MouseListener() { @Override public void mouseClicked(MouseEvent e) { e.consume(); } @Override public void mousePressed(MouseEvent e) { e.consume(); } @Override public void mouseReleased(MouseEvent e) { e.consume(); } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } }); this.addKeyListener(new KeyListener() { @Override public void keyPressed(KeyEvent e) { e.consume(); } @Override public void keyTyped(KeyEvent e) { } @Override public void keyReleased(KeyEvent e) { e.consume(); } }); setFocusTraversalKeysEnabled(false); } @Override protected void paintComponent(Graphics g) { g.setColor(this.getBackground()); g.fillRect(0, 0, this.getSize().width, this.getSize().height); } }