Make a JInternalFrame a tool window : JFrame Window « Swing « Java Tutorial






/*
 * Copyright (C) 2001-2004 Colin Bell
 * colbell@users.sourceforge.net
 *
 * 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 2.1 of the License, or (at your option) any later version.
 *
 * This library 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.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */


import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FontMetrics;
import java.awt.Frame;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.geom.Rectangle2D;
import java.beans.PropertyVetoException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.SwingUtilities;

/**
 * Common GUI utilities accessed via static methods.
 * 
 * @author <A HREF="mailto:colbell@users.sourceforge.net">Colin Bell</A>
 */
public class GUIUtils {


  /**
   * Return <TT>true</TT> if <TT>frame</TT> is a tool window. I.E. is the
   * <TT>JInternalFrame.isPalette</TT> set to <TT>Boolean.TRUE</TT>?
   * 
   * @param frame
   *          The <TT>JInternalFrame</TT> to be checked.
   * 
   * @throws IllegalArgumentException
   *           If <TT>frame</TT> is <TT>null</TT>.
   */
  public static boolean isToolWindow(JInternalFrame frame) {
    if (frame == null) {
      throw new IllegalArgumentException("null JInternalFrame passed");
    }

    final Object obj = frame.getClientProperty("JInternalFrame.isPalette");
    return obj != null && obj == Boolean.TRUE;
  }

  /**
   * Make the passed internal frame a Tool Window.
   */
  public static void makeToolWindow(JInternalFrame frame, boolean isToolWindow) {
    if (frame == null) {
      throw new IllegalArgumentException("null JInternalFrame passed");
    }
    frame
        .putClientProperty("JInternalFrame.isPalette", isToolWindow ? Boolean.TRUE : Boolean.FALSE);
  }
}








14.80.JFrame Window
14.80.1.Creating a WindowCreating a Window
14.80.2.Display a JFrame instanceDisplay a JFrame instance
14.80.3.Resizing and positioning a JFrameResizing and positioning a JFrame
14.80.4.Constants for JFrame window close actionConstants for JFrame window close action
14.80.5.Sizing Windows with ToolkitSizing Windows with Toolkit
14.80.6.Centering a WindowCentering a Window
14.80.7.Extending JFrame: Closing Frames by DefaultExtending JFrame: Closing Frames by Default
14.80.8.Exiting an Application When a JFrame Is Closed
14.80.9.JFrame with Label and Window Listener to Handle Closing the FrameJFrame with Label and Window Listener to Handle Closing the Frame
14.80.10.Handling JFrame Events
14.80.11.Specifying Window DecorationsSpecifying Window Decorations
14.80.12.Set Default window close operation
14.80.13.SetIconImages for JFrame
14.80.14.Creating a Titleless and Borderless JFrame
14.80.15.Close a JFrame under condition
14.80.16.Creating a Borderless Window
14.80.17.Creating Frames with a background image
14.80.18.Setting the Icon for a Frame
14.80.19.Getting All Created Frames in an Application
14.80.20.Removing the Title Bar of a Frame
14.80.21.Making a Frame Non-Resizable: use setResizable(false) to freeze a frame's size.
14.80.22.Use Component listener to ensure frame visibilities
14.80.23.Drag and move a frame from its content area
14.80.24.Disabling the Close Button on a JFrame
14.80.25.Maximize a JFrame
14.80.26.Make a JFrame always visible
14.80.27.Preventing a Window from Gaining the Focus
14.80.28.Getting the Child Components of a Container
14.80.29.Get Top Frame
14.80.30.Make a JInternalFrame a tool window
14.80.31.Move JInternalFrame To Front