motifinternalframeui.java

来自「JAVA 所有包」· Java 代码 · 共 207 行

JAVA
207
字号
/* * @(#)MotifInternalFrameUI.java	1.27 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.java.swing.plaf.motif;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.util.EventListener;import javax.swing.plaf.basic.*;import javax.swing.border.*;import javax.swing.plaf.*;/** * A Motif L&F implementation of InternalFrame.   * <p> * <strong>Warning:</strong> * Serialized objects of this class will not be compatible with * future Swing releases.  The current serialization support is appropriate * for short term storage or RMI between applications running the same * version of Swing.  A future release of Swing will provide support for * long term persistence. * * @version 1.27 11/17/05 * @author Tom Ball */public class MotifInternalFrameUI extends BasicInternalFrameUI {    Color color;    Color highlight;    Color shadow;    MotifInternalFrameTitlePane titlePane;    /**     * As of Java 2 platform v1.3 this previously undocumented field is no     * longer used.     * Key bindings are now defined by the LookAndFeel, please refer to     * the key bindings specification for further details.     *     * @deprecated As of Java 2 platform v1.3.     */    @Deprecated    protected KeyStroke closeMenuKey;/////////////////////////////////////////////////////////////////////////////// ComponentUI Interface Implementation methods/////////////////////////////////////////////////////////////////////////////    public static ComponentUI createUI(JComponent w)    {        return new MotifInternalFrameUI((JInternalFrame)w);    }    public MotifInternalFrameUI(JInternalFrame w)   {        super(w);    }                public void installUI(JComponent c)   {        super.installUI(c);        setColors((JInternalFrame)c);    }       protected void installDefaults() {	Border frameBorder = frame.getBorder();        frame.setLayout(internalFrameLayout = createLayoutManager());        if (frameBorder == null || frameBorder instanceof UIResource) {            frame.setBorder(new MotifBorders.InternalFrameBorder(frame));        }	    }    protected void installKeyboardActions(){      super.installKeyboardActions();      // We replace the       // we use JPopup in our TitlePane so need escape support      closeMenuKey = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);    }    protected void uninstallDefaults() {        LookAndFeel.uninstallBorder(frame);        frame.setLayout(null);        internalFrameLayout = null;    }    private JInternalFrame getFrame(){      return frame;    }    public JComponent createNorthPane(JInternalFrame w) {        titlePane = new MotifInternalFrameTitlePane(w);        return titlePane;    }    public Dimension getMaximumSize(JComponent x) {        return Toolkit.getDefaultToolkit().getScreenSize();    }    protected void uninstallKeyboardActions(){      super.uninstallKeyboardActions();      if (isKeyBindingRegistered()){	JInternalFrame.JDesktopIcon di = frame.getDesktopIcon();	SwingUtilities.replaceUIActionMap(di, null);	SwingUtilities.replaceUIInputMap(di, JComponent.WHEN_IN_FOCUSED_WINDOW,					 null);      }    }        protected void setupMenuOpenKey(){	super.setupMenuOpenKey();	ActionMap map = SwingUtilities.getUIActionMap(frame);	if (map != null) {	    // BasicInternalFrameUI creates an action with the same name, we override	    // it as MotifInternalFrameTitlePane has a titlePane ivar that shadows the	    // titlePane ivar in BasicInternalFrameUI, making supers action throw	    // an NPE for us.	    map.put("showSystemMenu", new AbstractAction(){		public void actionPerformed(ActionEvent e){		    titlePane.showSystemMenu();		}		public boolean isEnabled(){		    return isKeyBindingActive();		}	    });	}    }    protected void setupMenuCloseKey(){	ActionMap map = SwingUtilities.getUIActionMap(frame);	if (map != null) {	    map.put("hideSystemMenu", new AbstractAction(){		public void actionPerformed(ActionEvent e){		    titlePane.hideSystemMenu();		}		public boolean isEnabled(){		    return isKeyBindingActive();		}	    });	}	// Set up the bindings for the DesktopIcon, it is odd that	// we install them, and not the desktop icon.	JInternalFrame.JDesktopIcon di = frame.getDesktopIcon();	InputMap diInputMap = SwingUtilities.getUIInputMap	                  (di, JComponent.WHEN_IN_FOCUSED_WINDOW);	if (diInputMap == null) {	    Object[] bindings = (Object[])UIManager.get		                          ("DesktopIcon.windowBindings");	    if (bindings != null) {		diInputMap = LookAndFeel.makeComponentInputMap(di, bindings);		SwingUtilities.replaceUIInputMap(di, JComponent.					       WHEN_IN_FOCUSED_WINDOW,					       diInputMap);	    }	}	ActionMap diActionMap = SwingUtilities.getUIActionMap(di);	if (diActionMap == null) {	    diActionMap = new ActionMapUIResource();	    diActionMap.put("hideSystemMenu", new AbstractAction(){		public void actionPerformed(ActionEvent e){		    JInternalFrame.JDesktopIcon icon = getFrame().			             getDesktopIcon();		    MotifDesktopIconUI micon = (MotifDesktopIconUI)icon.			                       getUI();		    micon.hideSystemMenu();		}		public boolean isEnabled(){		    return isKeyBindingActive();		}	    });	    SwingUtilities.replaceUIActionMap(di, diActionMap);	}    }    /** This method is called when the frame becomes selected.      */    protected void activateFrame(JInternalFrame f) {        super.activateFrame(f);        setColors(f);    }    /** This method is called when the frame is no longer selected.      */    protected void deactivateFrame(JInternalFrame f) {        setColors(f);        super.deactivateFrame(f);    }    void setColors(JInternalFrame frame) {        if (frame.isSelected()) {            color = UIManager.getColor("InternalFrame.activeTitleBackground");        } else {            color = UIManager.getColor("InternalFrame.inactiveTitleBackground");        }        highlight = color.brighter();        shadow = color.darker().darker();        titlePane.setColors(color, highlight, shadow);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?