package org.japura.gui.util; import java.awt.AWTEvent; import java.awt.Toolkit; import java.awt.event.AWTEventListener; import java.awt.event.InputEvent; /** * <P> * Copyright (C) 2011 Carlos Eduardo Leite de Andrade * <P> * This library is free software: you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation, either version 3 of the License, or (at your option) any * later version. * <P> * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * <P> * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <A * HREF="www.gnu.org/licenses/">www.gnu.org/licenses/</A> * <P> * For more information, contact: <A HREF="www.japura.org">www.japura.org</A> * <P> * * @author Carlos Eduardo Leite de Andrade */ public class InputEventBlocker{ private AWTEventListener listener; private AWTEventListener getListener() { if (listener == null) { listener = new AWTEventListener() { @Override public void eventDispatched(AWTEvent event) { if (event instanceof InputEvent) { InputEvent ie = (InputEvent) event; ie.consume(); } } }; } return listener; } public void apply() { try { Toolkit.getDefaultToolkit().addAWTEventListener(getListener(), Long.MAX_VALUE); } catch (SecurityException e) { e.printStackTrace(); // ignore } } public void remove() { try { Toolkit.getDefaultToolkit().removeAWTEventListener(getListener()); } catch (SecurityException e) { // ignore } } }