Java JFrame setCursorFree(JFrame frame)

Here you can find the source of setCursorFree(JFrame frame)

Description

Set cursor to free and enable application input.

License

Open Source License

Parameter

Parameter Description
frame Frame to apply to

Declaration

public static void setCursorFree(JFrame frame) 

Method Source Code


//package com.java2s;
/*//from  w  w w. ja  va 2 s.c  o  m
 * Copyright 2004 - 2013 Wayne Grant
 *           2013 - 2016 Kai Kramer
 *
 * This file is part of KeyStore Explorer.
 *
 * KeyStore Explorer is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * KeyStore Explorer 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with KeyStore Explorer.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.awt.Component;
import java.awt.Container;
import java.awt.Cursor;

import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JFrame;

public class Main {
    /**
     * Set cursor to free and enable application input. Called after a call to
     * setCursorBusy.
     *
     * @param frame
     *            Frame to apply to
     */
    public static void setCursorFree(JFrame frame) {
        setCursorFree(frame.getRootPane().getGlassPane());
    }

    /**
     * Set cursor to free and enable application input. Called after a call to
     * setCursorBusy.
     *
     * @param component
     *            Component within container to apply to
     */
    public static void setCursorFree(JComponent component) {
        JDialog dialog = findContainingDialog(component);

        if (dialog != null) {
            setCursorFree(dialog);
        } else {
            JFrame frame = findContainingFrame(component);

            if (frame != null) {
                setCursorFree(frame);
            }
        }
    }

    /**
     * Set cursor to free and enable application input. Called after a call to
     * setCursorBusy.
     *
     * @param dialog
     *            Dialog to apply to
     */
    public static void setCursorFree(JDialog dialog) {
        setCursorFree(dialog.getRootPane().getGlassPane());
    }

    private static void setCursorFree(Component glassPane) {
        glassPane.setVisible(false);

        glassPane.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
    }

    private static JDialog findContainingDialog(JComponent component) {
        Container container = component.getParent();

        while (container != null) {
            if (container instanceof JDialog) {
                return (JDialog) container;
            }

            container = container.getParent();
        }

        return null;
    }

    private static JFrame findContainingFrame(JComponent component) {
        Container container = component.getParent();

        while (container != null) {
            if (container instanceof JFrame) {
                return (JFrame) container;
            }

            container = container.getParent();
        }

        return null;
    }
}

Related

  1. rightShiftDialog(JDialog dialog, JFrame parent)
  2. run(JFrame frame, int width, int height)
  3. saveFrame(Class pClass, JFrame pFrame, String pFrameId)
  4. saveMainWindowLocation(JFrame jfrm, String strPropertiesFilePath, String strPropertiesFileName)
  5. setBlockAllUserInput(final JFrame frame, final boolean yesNo)
  6. setDialogLocation(JFrame frame, JFrame parentFrame)
  7. setDirty(JFrame frame, boolean isDirty)
  8. setEscapeAction(JFrame frame, Action action)
  9. setEscapeClosable(JFrame frame)