亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? jtaskpanegroup.java

?? 精美開源Swing組件
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/**
 * L2FProd.com Common Components 7.3 License.
 *
 * Copyright 2005-2007 L2FProd.com
 *
 * 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
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * 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.
 */
package com.l2fprod.common.swing;

import com.l2fprod.common.swing.plaf.JTaskPaneGroupAddon;
import com.l2fprod.common.swing.plaf.LookAndFeelAddons;
import com.l2fprod.common.swing.plaf.TaskPaneGroupUI;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.LayoutManager;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.UIManager;

/**
 * <code>JTaskPaneGroup</code> is a container for tasks and other
 * arbitrary components.
 * 
 * <p>
 * Several <code>JTaskPaneGroup</code>s are usually grouped together within a
 * {@link JTaskPane}. However it is not mandatory
 * to use a JTaskPane as the parent for JTaskPaneGroup. The JTaskPaneGroup can
 * be added to any other container. See
 * {@link JTaskPane} to understand the benefits of
 * using it as the parent container.
 * 
 * <p>
 * <code>JTaskPaneGroup</code> provides control to expand and
 * collapse the content area in order to show or hide the task list. It can have an
 * <code>icon</code>, a <code>title</code> and can be marked as
 * <code>special</code>. Marking a <code>JTaskPaneGroup</code> as
 * <code>special</code> is only a hint for the pluggable UI which
 * will usually paint it differently (by example by using another
 * color for the border of the pane).
 * 
 * <p> 
 * When the JTaskPaneGroup is expanded or collapsed, it will be
 * animated with a fade effect. The animated can be disabled on a per
 * component basis through {@link #setAnimated(boolean)}.
 * 
 * To disable the animation for all newly created <code>JTaskPaneGroup</code>,
 * use the UIManager property:
 * <code>UIManager.put("TaskPaneGroup.animate", Boolean.FALSE);</code>.
 * 
 * <p>
 * Example:
 * <pre>
 * <code>
 * JXFrame frame = new JXFrame();
 * 
 * // a container to put all JTaskPaneGroup together
 * JTaskPane taskPaneContainer = new JTaskPane();
 * 
 * // create a first taskPane with common actions
 * JTaskPaneGroup actionPane = new JTaskPaneGroup();
 * actionPane.setTitle("Files and Folders");
 * actionPane.setSpecial(true);
 * 
 * // actions can be added, an hyperlink will be created
 * Action renameSelectedFile = createRenameFileAction();
 * actionPane.add(renameSelectedFile);
 * actionPane.add(createDeleteFileAction());
 * 
 * // add this taskPane to the taskPaneContainer
 * taskPaneContainer.add(actionPane);
 * 
 * // create another taskPane, it will show details of the selected file
 * JTaskPaneGroup details = new JTaskPaneGroup();
 * details.setTitle("Details");
 *  
 * // add standard components to the details taskPane
 * JLabel searchLabel = new JLabel("Search:");
 * JTextField searchField = new JTextField("");
 * details.add(searchLabel);
 * details.add(searchField);
 * 
 * taskPaneContainer.add(details);
 * 
 * // put the action list on the left 
 * frame.add(taskPaneContainer, BorderLayout.EAST);
 * 
 * // and a file browser in the middle
 * frame.add(fileBrowser, BorderLayout.CENTER);
 * 
 * frame.pack().
 * frame.setVisible(true);
 * </code>
 * </pre>
 * 
 * @see JTaskPane
 * @see JCollapsiblePane
 * @author <a href="mailto:fred@L2FProd.com">Frederic Lavigne</a>
 * 
 * @javabean.attribute
 *          name="isContainer"
 *          value="Boolean.TRUE"
 *          rtexpr="true"
 *          
 * @javabean.attribute
 *          name="containerDelegate"
 *          value="getContentPane"
 *          
 * @javabean.class
 *          name="JTaskPaneGroup"
 *          shortDescription="JTaskPaneGroup is a container for tasks and other arbitrary components."
 *          stopClass="java.awt.Component"
 * 
 * @javabean.icons
 *          mono16="JTaskPaneGroup16-mono.gif"
 *          color16="JTaskPaneGroup16.gif"
 *          mono32="JTaskPaneGroup32-mono.gif"
 *          color32="JTaskPaneGroup32.gif"
 */
public class JTaskPaneGroup extends JPanel implements
  JCollapsiblePane.JCollapsiblePaneContainer {

  public final static String UI_CLASS_ID = "TaskPaneGroupUI";
  
  // ensure at least the default ui is registered
  static {
    LookAndFeelAddons.contribute(new JTaskPaneGroupAddon());
  }

  /**
   * Used when generating PropertyChangeEvents for the "expanded" property
   */
  public static final String EXPANDED_CHANGED_KEY = "expanded";

  /**
   * Used when generating PropertyChangeEvents for the "collapsable" property
   */
  public static final String COLLAPSABLE_CHANGED_KEY = "collapsable";

  /**
   * Used when generating PropertyChangeEvents for the "scrollOnExpand" property
   */
  public static final String SCROLL_ON_EXPAND_CHANGED_KEY = "scrollOnExpand";

  /**
   * Used when generating PropertyChangeEvents for the "title" property
   */
  public static final String TITLE_CHANGED_KEY = "title";

  /**
   * Used when generating PropertyChangeEvents for the "icon" property
   */
  public static final String ICON_CHANGED_KEY = "icon";

  /**
   * Used when generating PropertyChangeEvents for the "special" property
   */
  public static final String SPECIAL_CHANGED_KEY = "special";

  /**
   * Used when generating PropertyChangeEvents for the "animated" property
   */
  public static final String ANIMATED_CHANGED_KEY = "animated";

  private String title;
  private Icon icon;
  private boolean special;
  private boolean expanded = true;
  private boolean scrollOnExpand;
  private boolean collapsable = true;
  
  private JCollapsiblePane collapsePane;
  
  /**
   * Creates a new empty <code>JTaskPaneGroup</code>.
   */
  public JTaskPaneGroup() {
    collapsePane = new JCollapsiblePane();
    super.setLayout(new BorderLayout(0, 0));
    super.addImpl(collapsePane, BorderLayout.CENTER, -1);
    
    updateUI();
    setFocusable(true);
    setOpaque(false);

    // disable animation if specified in UIManager
    setAnimated(!Boolean.FALSE.equals(UIManager.get("TaskPaneGroup.animate")));
    
    // listen for animation events and forward them to registered listeners
    collapsePane.addPropertyChangeListener(
      JCollapsiblePane.ANIMATION_STATE_KEY, new PropertyChangeListener() {
        public void propertyChange(PropertyChangeEvent evt) {
          JTaskPaneGroup.this.firePropertyChange(evt.getPropertyName(), evt
            .getOldValue(), evt.getNewValue());
        }
      });
  }

  /**
   * Returns the contentPane object for this JTaskPaneGroup.
   * @return the contentPane property
   */
  public Container getContentPane() {
    return collapsePane.getContentPane();
  }
  
  /**
   * Notification from the <code>UIManager</code> that the L&F has changed.
   * Replaces the current UI object with the latest version from the <code>UIManager</code>.
   * 
   * @see javax.swing.JComponent#updateUI
   */
  public void updateUI() {
    // collapsePane is null when updateUI() is called by the "super()"
    // constructor
    if (collapsePane == null) {
      return;
    }
    setUI((TaskPaneGroupUI)LookAndFeelAddons.getUI(this, TaskPaneGroupUI.class));
  }
  
  /**
   * Sets the L&F object that renders this component.
   * 
   * @param ui the <code>TaskPaneGroupUI</code> L&F object
   * @see javax.swing.UIDefaults#getUI
   * 
   * @beaninfo bound: true hidden: true description: The UI object that
   * implements the taskpane group's LookAndFeel.
   */
  public void setUI(TaskPaneGroupUI ui) {
    super.setUI(ui);
  }

  /**
   * Returns the name of the L&F class that renders this component.
   * 
   * @return the string {@link #UI_CLASS_ID}
   * @see javax.swing.JComponent#getUIClassID
   * @see javax.swing.UIDefaults#getUI
   */
  public String getUIClassID() {
    return UI_CLASS_ID;
  }

  /**
   * Returns the title currently displayed in the border of this pane.
   * 
   * @since 0.2
   * @return the title currently displayed in the border of this pane
   */
  public String getTitle() {
    return title;
  }

  /**
   * Sets the title to be displayed in the border of this pane.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一级中文字幕一区二区| 国产精品99久久久久久似苏梦涵| 美女视频黄a大片欧美| 成人高清在线视频| 日韩欧美国产一区二区在线播放| 一区视频在线播放| 精品一区二区三区免费播放| 欧美日韩日本视频| 亚洲人成网站色在线观看| 国内成人精品2018免费看| 欧美日韩成人激情| 亚洲欧美日韩系列| 成人在线视频一区二区| 日韩欧美二区三区| 日产国产高清一区二区三区| 欧洲一区二区三区在线| 日韩理论片一区二区| 国产精品系列在线观看| 精品国产免费人成在线观看| 奇米精品一区二区三区在线观看一| 91麻豆国产福利精品| 国产精品视频线看| 懂色av一区二区三区免费观看| 日韩精品一区二区三区在线| 日韩成人免费在线| 在线播放中文一区| 日韩精品午夜视频| 91精品国产91久久综合桃花| 亚洲高清免费视频| 欧美日韩高清影院| 日av在线不卡| 精品久久久久久久久久久久包黑料| 免费的成人av| 久久这里只有精品首页| 国产精品一区二区你懂的| 2024国产精品| 国产宾馆实践打屁股91| 国产精品麻豆99久久久久久| 不卡的av网站| 亚洲欧美色综合| 欧美偷拍一区二区| 日本在线不卡一区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 最新国产成人在线观看| 色婷婷亚洲综合| 亚洲成人资源网| 欧美一级视频精品观看| 国产一区二区在线观看免费| 中文字幕精品一区二区精品绿巨人 | 亚洲一区二区高清| 制服丝袜日韩国产| 国产东北露脸精品视频| 国产精品久久久久国产精品日日| 91丨九色丨国产丨porny| 亚洲小说春色综合另类电影| 欧美一区二区三区在线视频| 国产一区二区电影| 亚洲另类在线一区| 欧美一级片免费看| 丁香激情综合国产| 午夜婷婷国产麻豆精品| 精品国产区一区| 一本大道av伊人久久综合| 日韩av一区二| 亚洲国产精品二十页| 欧美日韩在线播放一区| 久久国产精品99精品国产| 中文字幕一区二区三区在线播放| 欧美主播一区二区三区| 国产在线看一区| 亚洲一区在线免费观看| 久久综合色综合88| 欧美日韩一二三区| 国产98色在线|日韩| 日韩精品成人一区二区在线| 中文字幕不卡一区| 日韩一级二级三级| 91国产丝袜在线播放| 国产美女娇喘av呻吟久久| 亚洲大型综合色站| 亚洲欧美综合色| 精品电影一区二区| 3d动漫精品啪啪| 91美女福利视频| 国产精品1024| 麻豆精品蜜桃视频网站| 亚洲一区二区高清| 亚洲蜜臀av乱码久久精品蜜桃| 精品福利在线导航| 日韩欧美综合在线| 欧美精品在线一区二区| 色久综合一二码| 精品国产一区二区精华| 91九色最新地址| 国产不卡一区视频| 麻豆精品久久精品色综合| 亚洲一区影音先锋| 尤物视频一区二区| 国产精品另类一区| 国产婷婷色一区二区三区四区| 欧美一区中文字幕| 欧美日韩国产一级二级| 91黄色小视频| 欧美中文字幕久久| 一本色道**综合亚洲精品蜜桃冫 | 99re这里只有精品首页| 国产精品一区免费在线观看| 久久精品国产成人一区二区三区| 亚洲图片有声小说| 亚洲一区影音先锋| 午夜精品久久久久久久99水蜜桃| 亚洲精品国产第一综合99久久 | thepron国产精品| 亚洲成人黄色小说| 亚洲免费观看高清完整| 亚洲啪啪综合av一区二区三区| 国产精品国产三级国产| 国产精品二区一区二区aⅴ污介绍| 日本一区二区免费在线观看视频| 欧美国产1区2区| 136国产福利精品导航| 中文字幕在线不卡| 一区二区三区四区亚洲| 亚洲一级二级在线| 日本欧美一区二区三区| 韩国女主播一区| 国产主播一区二区| 99久久伊人精品| 色久综合一二码| 欧美美女一区二区在线观看| 日韩欧美国产三级电影视频| www亚洲一区| 欧美精品日日鲁夜夜添| 国产乱对白刺激视频不卡| 久久国产精品色婷婷| 国产精品88av| 91免费精品国自产拍在线不卡 | 久久久国际精品| 国产精品乱码久久久久久| 亚洲欧洲一区二区在线播放| 亚洲一区二区三区四区在线免费观看| 亚洲综合视频网| 久久99久久精品| a在线欧美一区| 在线不卡a资源高清| 国产人久久人人人人爽| 亚洲国产另类av| 国产精品1区2区3区| 色婷婷狠狠综合| 日韩欧美高清一区| 亚洲蜜臀av乱码久久精品蜜桃| 五月激情六月综合| 国产白丝网站精品污在线入口| 欧美写真视频网站| 欧美日韩一区二区三区四区| 91丨porny丨在线| 欧美一区二区在线看| 国产精品久久久久久一区二区三区 | 国产精品久久久久久久蜜臀 | 51午夜精品国产| 国产精品久久久久国产精品日日| 五月婷婷激情综合| 91无套直看片红桃| 日韩欧美国产午夜精品| 亚洲精品国产一区二区三区四区在线| 免费观看成人鲁鲁鲁鲁鲁视频| 一本久久精品一区二区| 国产午夜精品一区二区三区嫩草| 天天射综合影视| 91麻豆免费视频| 国产免费成人在线视频| 午夜精品免费在线| 色激情天天射综合网| 国产精品欧美久久久久一区二区| 卡一卡二国产精品| 久久久亚洲精品一区二区三区 | 亚洲精品国产成人久久av盗摄| 免费成人美女在线观看.| 91麻豆免费看片| 国产日产精品一区| 久久国产人妖系列| 欧美精品v国产精品v日韩精品 | 久久美女艺术照精彩视频福利播放 | 777色狠狠一区二区三区| 亚洲色图在线视频| 粉嫩一区二区三区在线看| 日韩免费看的电影| 日本免费新一区视频| 欧美另类z0zxhd电影| 亚洲一区二区三区不卡国产欧美| 99精品热视频| 国产精品久久久久久久久搜平片 | 日韩高清不卡在线| 欧美无乱码久久久免费午夜一区| 亚洲少妇中出一区| 99久久99久久精品国产片果冻| 国产精品午夜电影| 99热在这里有精品免费| 国产精品美女久久福利网站| 99久久精品免费精品国产|