⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xptoolbarui.java

📁 Swing Windows XP 外观和感觉 BeanSoft 修改版, 2003年 原始的作者: XP 外观和感觉 by Stefan Krause - http://www.stefan
💻 JAVA
字号:
// Beta
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*	XP Look and Feel														   *
*															                   *
*  (C) Copyright 2002, by Stefan Krause, Taufik Romdhane and Contributors      *
*                                                                              *
*                                                                              *
* The XP Look and Feel started as as extension to the Metouia Look and Feel.   *
* The original header of this file was:                                        *
** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*        Metouia Look And Feel: a free pluggable look and feel for java        *
*                         http://mlf.sourceforge.net                           *
*          (C) Copyright 2002, by Taoufik Romdhane and Contributors.           *
*                                                                              *
*   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 General Public License along    *
*   with this program; if not, write to the Free Software Foundation, Inc.,   *
*   59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.                    *
*                                                                              *
*   Original Author:  Taoufik Romdhane                                         *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */


package com.stefankrause.xplookandfeel;

import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;

import javax.swing.AbstractButton;
import javax.swing.JComponent;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.metal.MetalToolBarUI;

import com.stefankrause.xplookandfeel.skin.Skin;

/**
 * This class represents the UI delegate for the JToolBar component.
 *
 * @author Taoufik Romdhane
 */
public class XPToolBarUI extends MetalToolBarUI
{
	/**
	 * The Border used for buttons in a toolbar
	 */
  private Border border=new EmptyBorder(4,4,4,4);

  /**
   * The only UI delegate.
   */
  private final static XPToolBarUI toolBarUI = new XPToolBarUI();
  /** The skin for the background of a toolbar*/
  private static Skin skin;

  /**
   * These insets are forced inner margin for the toolbar buttons.
   */
  private Insets insets = new Insets(2, 2, 2, 2);

  /**
   * Creates the UI delegate for the given component.
   *
   * @param c The component to create its UI delegate.
   * @return The UI delegate for the given component.
   */
  public static ComponentUI createUI(JComponent c)
  {
    return toolBarUI;
  }

  /**
   * Installs some default values for the given toolbar.
   * The gets a rollover property.
   *
   * @param c The reference of the toolbar to install its default values.
   */
  public void installUI(JComponent c)
  {
    super.installUI(c);
    c.putClientProperty("JToolBar.isRollover", Boolean.TRUE);
  }


  /**
   * Paints the given component.
   *
   * @param g The graphics context to use.
   * @param c The component to paint.
   */
  public void paint(Graphics g, JComponent c)
  {
  	getSkin().draw(g, 0, c.getWidth(),c.getHeight());
  }

  
  /**
   * Sets the border of the given component to a rollover border.
   *
   * @param c The component to set its border.
   */
  protected void setBorderToRollover(Component c)
  {
		if (c instanceof AbstractButton) {
			AbstractButton b = (AbstractButton) c;
			b.setBorder(border);
		    b.putClientProperty("JToolBar.isToolbarButton", Boolean.TRUE);
		}

  }
	protected void setBorderToNormal(Component c) {
		if (c instanceof AbstractButton) {
			AbstractButton b = (AbstractButton) c;
			b.setBorder(border);
		    b.putClientProperty("JToolBar.isToolbarButton", Boolean.TRUE);
		}
	}

//    protected Border createRolloverBorder() {
//		return new XPButtonBorder();
//    }
//
//    /**
//     * Creates the non rollover border for toolbar components. This
//     * border will be installed as the border for components added
//     * to the toolbar if rollover borders are not enabled.
//     * <p>
//     * Override this method to provide an alternate rollover border.
//     *
//     * @since 1.4
//     */
//    protected Border createNonRolloverBorder() {
//		return new XPButtonBorder();
//    }
 
	public Skin getSkin() {
		if (skin==null)
			skin= new Skin("XPToolbarBackground.res", 1, 1);
		return skin;
	}
	 
}

⌨️ 快捷键说明

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