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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? swingbuilder.java

?? Groovy動態語言 運行在JVM中的動態語言 可以方便的處理業務邏輯變化大的業務
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/*
 $Id: SwingBuilder.java 4247 2006-11-19 19:00:19Z mcspanky $

 Copyright 2003 (C) James Strachan and Bob Mcwhirter. All Rights Reserved.

 Redistribution and use of this software and associated documentation
 ("Software"), with or without modification, are permitted provided
 that the following conditions are met:

 1. Redistributions of source code must retain copyright
    statements and notices.  Redistributions must also contain a
    copy of this document.

 2. Redistributions in binary form must reproduce the
    above copyright notice, this list of conditions and the
    following disclaimer in the documentation and/or other
    materials provided with the distribution.

 3. The name "groovy" must not be used to endorse or promote
    products derived from this Software without prior written
    permission of The Codehaus.  For written permission,
    please contact info@codehaus.org.

 4. Products derived from this Software may not be called "groovy"
    nor may "groovy" appear in their names without prior written
    permission of The Codehaus. "groovy" is a registered
    trademark of The Codehaus.

 5. Due credit should be given to The Codehaus -
    http://groovy.codehaus.org/

 THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS
 ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
 NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
 THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 OF THE POSSIBILITY OF SUCH DAMAGE.

 */
package groovy.swing;

import groovy.lang.Closure;
import groovy.lang.MissingMethodException;

import groovy.model.DefaultTableModel;
import groovy.model.ValueHolder;
import groovy.model.ValueModel;

import groovy.swing.impl.ComponentFacade;
import groovy.swing.impl.ContainerFacade;
import groovy.swing.impl.DefaultAction;
import groovy.swing.impl.Factory;
import groovy.swing.impl.Startable;
import groovy.swing.impl.TableLayout;
import groovy.swing.impl.TableLayoutCell;
import groovy.swing.impl.TableLayoutRow;

import groovy.util.BuilderSupport;

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import java.awt.Window;

import java.text.Format;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.swing.AbstractButton;
import javax.swing.Action;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.DefaultBoundedRangeModel;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JDesktopPane;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JFileChooser;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JPopupMenu;
import javax.swing.JProgressBar;
import javax.swing.JRadioButton;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.JToggleButton;
import javax.swing.JToolBar;
import javax.swing.JToolTip;
import javax.swing.JTree;
import javax.swing.JViewport;
import javax.swing.JWindow;
import javax.swing.KeyStroke;
import javax.swing.OverlayLayout;
import javax.swing.RootPaneContainer;
import javax.swing.SpinnerDateModel;
import javax.swing.SpinnerListModel;
import javax.swing.SpinnerNumberModel;
import javax.swing.SpringLayout;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;

import org.codehaus.groovy.runtime.InvokerHelper;

/**
 * A helper class for creating Swing widgets using GroovyMarkup
 * 
 * @author <a href="mailto:james@coredevelopers.net">James Strachan</a>
 * @version $Revision: 4247 $
 */
public class SwingBuilder extends BuilderSupport {

    private Logger log = Logger.getLogger(getClass().getName());
    private Map factories = new HashMap();
    private Object constraints;
    private Map passThroughNodes = new HashMap();
    private Map widgets = new HashMap();
    // tracks all containing windows, for auto-owned dialogs
    private LinkedList containingWindows = new LinkedList();

    public SwingBuilder() {
        registerWidgets();
    }

    public Object getProperty(String name) {
        Object widget = widgets.get(name);
        if (widget == null) {
            return super.getProperty(name);
        }
        return widget;
    }

    protected void setParent(Object parent, Object child) {
        if (child instanceof Action) {
            Action action = (Action) child;
            try {
                InvokerHelper.setProperty(parent, "action", action);
            } catch (RuntimeException re) {
                // must not have an action property...
                // so we ignore it and go on
            }
            Object keyStroke = action.getValue("KeyStroke");
            //System.out.println("keystroke: " + keyStroke + " for: " + action);
            if (parent instanceof JComponent) {
                JComponent component = (JComponent) parent;
                KeyStroke stroke = null;
                if (keyStroke instanceof String) {
                    stroke = KeyStroke.getKeyStroke((String) keyStroke);
                }
                else if (keyStroke instanceof KeyStroke) {
                    stroke = (KeyStroke) keyStroke;
                }
                if (stroke != null) {
                    String key = action.toString();
                    component.getInputMap().put(stroke, key);
                    component.getActionMap().put(key, action);
                }
            }
        }
        else if (child instanceof LayoutManager) {
            if (parent instanceof RootPaneContainer) {
                RootPaneContainer rpc = (RootPaneContainer) parent;
                parent = rpc.getContentPane();
            }
            InvokerHelper.setProperty(parent, "layout", child);
        }
        else if (child instanceof JToolTip && parent instanceof JComponent) {
            ((JToolTip)child).setComponent((JComponent)parent);
        }
        else if (parent instanceof JTable && child instanceof TableColumn) {
            JTable table = (JTable) parent;
            TableColumn column = (TableColumn) child;
            table.addColumn(column);
        }
        else if (parent instanceof JTabbedPane && child instanceof Component) {
            JTabbedPane tabbedPane = (JTabbedPane) parent;
            tabbedPane.add((Component)child);
        } 
        else if (child instanceof Window) {
            // do nothing.  owner of window is set elsewhere, and this 
            // shouldn't get added to any parent as a child 
            // if it is a top level component anyway
        }
        else { 
            Component component = null;
            if (child instanceof Component) {
                component = (Component) child;
            }
            else if (child instanceof ComponentFacade) {
                ComponentFacade facade = (ComponentFacade) child;
                component = facade.getComponent();
            }
            if (component != null) {
                if (parent instanceof JFrame && component instanceof JMenuBar) {
                    JFrame frame = (JFrame) parent;
                    frame.setJMenuBar((JMenuBar) component);
                }
                else if (parent instanceof RootPaneContainer) {
                    RootPaneContainer rpc = (RootPaneContainer) parent;
                    if (constraints != null) {
                    	rpc.getContentPane().add(component, constraints);
                    } else {
                    	rpc.getContentPane().add(component);
                    }
                }
                else if (parent instanceof JScrollPane) {
                    JScrollPane scrollPane = (JScrollPane) parent;
                    if (child instanceof JViewport) {
                        scrollPane.setViewport((JViewport)component);
                    } 
                    else {
                        scrollPane.setViewportView(component);
                    }
                }
                else if (parent instanceof JSplitPane) {
                    JSplitPane splitPane = (JSplitPane) parent;
                    if (splitPane.getOrientation() == JSplitPane.HORIZONTAL_SPLIT) {
                        if (splitPane.getTopComponent() == null) {
                            splitPane.setTopComponent(component);
                        }
                        else {
                            splitPane.setBottomComponent(component);
                        }
                    }
                    else {
                        if (splitPane.getLeftComponent() == null) {
                            splitPane.setLeftComponent(component);
                        }
                        else {
                            splitPane.setRightComponent(component);
                        }
                    }
                }
                else if (parent instanceof JMenuBar && component instanceof JMenu) {
                    JMenuBar menuBar = (JMenuBar) parent;
                    menuBar.add((JMenu) component);
                }
                else if (parent instanceof Container) {
                    Container container = (Container) parent;
                    if (constraints != null) {
                        container.add(component, constraints);
                    }
                    else {
                        container.add(component);
                    }
                }
                else if (parent instanceof ContainerFacade) {
                    ContainerFacade facade = (ContainerFacade) parent;
                    facade.addComponent(component);
                }
            }
        }
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费观看男女羞羞视频| 丝袜美腿亚洲色图| 欧美一二区视频| 91精品国产综合久久久久久漫画 | 日韩欧美专区在线| 欧美日韩久久一区二区| 色域天天综合网| 在线一区二区观看| 欧美三级电影精品| 欧美日韩一级片在线观看| 欧美性感一区二区三区| 91精品国产色综合久久久蜜香臀| 欧美日韩中文字幕一区二区| 在线观看亚洲一区| 欧美理论片在线| 久久久综合视频| 中文字幕日本不卡| 亚洲午夜一区二区| 日本美女一区二区三区视频| 美日韩一级片在线观看| 国产一区在线不卡| 99精品久久只有精品| 欧美在线小视频| 欧美一级精品在线| 国产精品区一区二区三| 亚洲欧美日韩在线播放| 亚洲成人免费视频| 国产精品自拍在线| 色域天天综合网| 欧美一区二区啪啪| 欧美韩日一区二区三区四区| 亚洲裸体xxx| 日本免费新一区视频| 成人免费视频网站在线观看| 色婷婷国产精品综合在线观看| 欧美偷拍一区二区| 久久久亚洲欧洲日产国码αv| 中文字幕在线播放不卡一区| 日韩精品久久久久久| 国产99久久久国产精品潘金| 欧美性淫爽ww久久久久无| 久久综合色之久久综合| 夜夜夜精品看看| 国产福利不卡视频| 欧美美女网站色| 亚洲欧洲成人自拍| 激情国产一区二区 | 亚洲精品videosex极品| 男人的j进女人的j一区| 99re6这里只有精品视频在线观看| 51精品视频一区二区三区| 亚洲国产高清aⅴ视频| 爽好久久久欧美精品| 91免费观看在线| 久久精品一区二区| 美女一区二区视频| 欧美视频自拍偷拍| 亚洲三级在线免费观看| 国产一区二区三区精品视频 | 亚洲香肠在线观看| 成人h动漫精品| 久久婷婷国产综合国色天香| 日本不卡123| 久久婷婷色综合| 精品一区二区三区免费观看| 欧美日韩国产高清一区二区| 亚洲欧美在线视频观看| 国产精品18久久久久| 欧美一级艳片视频免费观看| 亚洲五月六月丁香激情| 色悠悠久久综合| 亚洲毛片av在线| 色婷婷av一区| 一区二区三区免费看视频| 北岛玲一区二区三区四区| 日本一区二区三级电影在线观看 | 欧日韩精品视频| 亚洲婷婷综合久久一本伊一区 | 白白色亚洲国产精品| 日本一区二区三区dvd视频在线| 精品一二三四在线| 26uuu另类欧美| 国产成人综合在线播放| 欧美国产精品劲爆| 成人免费观看av| 综合电影一区二区三区| 在线观看91视频| 视频一区二区不卡| 日韩女优电影在线观看| 国产一区二区91| 国产精品久久久久桃色tv| 不卡一区二区三区四区| 中文字幕一区日韩精品欧美| 色综合久久中文字幕| 亚洲最新在线观看| 欧美一级专区免费大片| 国模少妇一区二区三区| 国产精品成人免费| 欧美综合一区二区三区| 久久99热99| 亚洲欧洲精品一区二区三区| 欧美午夜影院一区| 另类中文字幕网| 欧美国产日本韩| 精品1区2区3区| 国产精品一区二区在线播放| 亚洲免费观看高清完整版在线观看熊| 欧美视频在线观看一区| 加勒比av一区二区| 亚洲精品老司机| 日韩欧美国产小视频| 99精品国产99久久久久久白柏 | 91精品免费在线观看| 国产一区二区三区黄视频| 综合亚洲深深色噜噜狠狠网站| 欧美精品一二三区| 豆国产96在线|亚洲| 午夜不卡在线视频| 国产精品免费av| 日韩欧美在线网站| 91在线播放网址| 国产美女在线精品| 日日夜夜免费精品视频| 中文字幕亚洲在| 国产视频一区在线播放| 欧美三级日本三级少妇99| 国产成人免费9x9x人网站视频| 日日骚欧美日韩| 一区二区三区四区国产精品| 久久久久久久综合| 制服丝袜亚洲精品中文字幕| 日韩午夜激情视频| 91玉足脚交白嫩脚丫在线播放| 久久99精品国产麻豆不卡| 亚洲国产精品久久不卡毛片| 国产精品少妇自拍| 国产三级三级三级精品8ⅰ区| 欧美一区二区免费视频| 欧美日韩小视频| 91蝌蚪porny九色| 成人精品国产免费网站| 国产麻豆午夜三级精品| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲国产精品影院| 亚洲免费观看高清完整版在线| 国产精品嫩草影院com| 精品免费国产二区三区| 欧美一级黄色片| 欧美一级黄色录像| 91精品国产91久久久久久最新毛片| 日本韩国一区二区三区| 色婷婷久久久综合中文字幕 | 日本高清无吗v一区| 成年人国产精品| 成人国产精品免费观看视频| 激情都市一区二区| 国产在线观看免费一区| 国产在线精品国自产拍免费| 黄色日韩网站视频| 韩国理伦片一区二区三区在线播放| 日韩国产精品久久久久久亚洲| 天天综合网天天综合色| 成人h动漫精品| 99视频有精品| 欧美性色综合网| 91精品国产入口在线| 日韩一区二区三区四区| 欧美精品一区在线观看| 国产网站一区二区三区| 欧美激情一区二区三区四区| 成人免费一区二区三区在线观看| 日韩美女啊v在线免费观看| 亚洲影院理伦片| 美腿丝袜亚洲色图| 高清不卡在线观看| 91官网在线免费观看| 91精品国产乱码久久蜜臀| 欧美精品一区二区蜜臀亚洲| 国产精品女主播在线观看| 亚洲综合小说图片| 免费人成在线不卡| 国产成人日日夜夜| 欧美亚洲愉拍一区二区| 日韩精品专区在线影院重磅| 国产午夜精品在线观看| 亚洲精品国产第一综合99久久| 日韩中文字幕1| 成人免费观看视频| 欧美精品电影在线播放| 久久久久久久综合日本| 亚洲永久精品大片| 国产精品一区二区果冻传媒| 日本乱人伦aⅴ精品| 精品久久久网站| 一区二区三区91| 国产成人在线网站| 成人欧美一区二区三区视频网页 | 国产麻豆视频一区| 在线观看国产91| 国产无一区二区|