Here you can find the source of onShowingChanged(final JComponent component, final Runnable callback)
public static void onShowingChanged(final JComponent component, final Runnable callback)
//package com.java2s; /**/*from ww w . j ava 2 s . c o m*/ * A collection of small utilities for component management and reflection handling. * <p/> * <hr/> Copyright 2006-2012 Torsten Heup * <p/> * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * <p/> * http://www.apache.org/licenses/LICENSE-2.0 * <p/> * 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. */ import javax.swing.*; import java.awt.event.HierarchyEvent; import java.awt.event.HierarchyListener; public class Main { public static void onShowingChanged(final JComponent component, final Runnable callback) { component.addHierarchyListener(new HierarchyListener() { public void hierarchyChanged(final HierarchyEvent e) { if (e.getComponent() == component && (e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) > 0) { callback.run(); } } }); } }