Here you can find the source of showDefaultCursorOnWindow(Component caller)
public static void showDefaultCursorOnWindow(Component caller)
//package com.java2s; /*// ww w .j a v a 2s . co m * WbSwingUtilities.java * * This file is part of SQL Workbench/J, http://www.sql-workbench.net * * Copyright 2002-2017, Thomas Kellerer * * Licensed under a modified Apache License, Version 2.0 * that restricts the use for certain governments. * You may not use this file except in compliance with the License. * You may obtain a copy of the License at. * * http://sql-workbench.net/manual/license.html * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * To contact the author please send an email to: support@sql-workbench.net * */ import java.awt.Component; import java.awt.Cursor; import java.awt.EventQueue; import java.awt.Window; import javax.swing.SwingUtilities; public class Main { public static void showDefaultCursorOnWindow(Component caller) { showDefaultCursor(caller, true); } public static void showDefaultCursor(final Component caller) { showDefaultCursor(caller, false); } public static void showDefaultCursor(final Component caller, final boolean includeParents) { showCursor(null, caller, includeParents, true); } private static void showCursor(final Cursor cursor, final Component caller, final boolean includeParent, boolean immediate) { if (caller == null) return; Runnable r = () -> { caller.setCursor(cursor); if (includeParent) { final Window w = getWindowAncestor(caller); if (w != null) { w.setCursor(cursor); } } }; if (EventQueue.isDispatchThread()) { r.run(); } else { if (immediate) { try { EventQueue.invokeAndWait(r); } catch (Throwable th) { } } else { EventQueue.invokeLater(r); } } } public static Window getWindowAncestor(Component caller) { if (caller == null) return null; if (caller instanceof Window) { return (Window) caller; } return SwingUtilities.getWindowAncestor(caller); } /** * A simple wrapper around EventQueue.invokeLater(). * * @param runner the task to execute */ public static void invokeLater(Runnable runner) { EventQueue.invokeLater(runner); } }