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

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

?? componentpalette.java

?? SWING的界面UI包 SWING的界面UI包
?? JAVA
字號(hào):
/*
 * ComponentToolKit.java
 *
 * Created on August 3, 2007, 2:21 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
package dyno.swing.designer.beans.toolkit;

import dyno.swing.beans.FolderPane;
import dyno.swing.designer.beans.SwingDesigner;
import dyno.swing.designer.beans.events.DesignerEditAdapter;
import dyno.swing.designer.beans.events.DesignerEvent;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.Enumeration;
import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;
import javax.swing.ButtonModel;
import javax.swing.ImageIcon;
import javax.swing.JScrollPane;
import javax.swing.JToggleButton;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
import javax.swing.event.MouseInputListener;

/**
 *
 * @author William Chen
 */
public class ComponentPalette extends JScrollPane {

    private static Color FOLDER_PANE_BACKGROUND = new Color(214, 223, 247);
    private static int FOLDER_PANE_WIDTH = 150;
    private ArrayList<ActionListener> listeners = new ArrayList<ActionListener>();
    private FolderPane folderPane;
    private ButtonGroup buttonGroup;
    private MouseInputListener mouseProxy;
    private PaletteDraggingHandler handler;
    private ArrayList<JToolBar> toolBars;

    /** Creates a new instance of ComponentToolKit */
    public ComponentPalette(SwingDesigner designer) {
        ClassLoader loader = getClass().getClassLoader();
        Class[] interfaces = new Class[]{MouseInputListener.class};
        InvocationHandler h = new InvocationHandler() {

                    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                        if (handler != null) {
                            return method.invoke(handler, args);
                        }
                        return null;
                    }
                };
        mouseProxy = (MouseInputListener) Proxy.newProxyInstance(loader, interfaces, h);
        toolBars = new ArrayList<JToolBar>();
        buttonGroup = new ButtonGroup();
        folderPane = new FolderPane();
        folderPane.setAnimated(true);
        initBeans();
        setViewportView(folderPane);
        getViewport().setBackground(folderPane.getBackground());
        designer.addDesignerEditListener(new DesignerEditAdapter() {

                    public void componentAdded(DesignerEvent evt) {
                        reset();
                    }

                    public void componentCanceled(DesignerEvent evt) {
                        reset();
                    }
                });
        this.handler = new PaletteDraggingHandler(designer);
    }

    public void addActionListener(ActionListener l) {
        if (!listeners.contains(l)) {
            listeners.add(l);
        }
    }

    public void removeActionListener(ActionListener l) {
        if (listeners.contains(l)) {
            listeners.remove(l);
        }
    }

    protected void fireActionPerformed(ActionEvent e) {
        for (ActionListener l : listeners) {
            l.actionPerformed(e);
        }
    }

    private boolean addFolder(JToolBar toolBar, String groupName, boolean added) {
        boolean expanded = false;
        if (!added) {
            expanded = true;
            added = true;
        }
        folderPane.addFolder(groupName, expanded, toolBar);

        Dimension size = toolBar.getPreferredSize();
        size.width = FOLDER_PANE_WIDTH;
        toolBar.setSize(size);
        return added;
    }

    private void initBeans() {
        InputStream input = null;
        try {
            input = this.getClass().getResourceAsStream("beans.properties");
            BufferedReader reader = new BufferedReader(new InputStreamReader(input));
            String line;
            String groupName = null;
            JToolBar toolBar = null;
            boolean added = false;
            while ((line = reader.readLine()) != null) {
                line = line.trim();
                if (!line.startsWith("#") && line.length() > 0) {
                    if (line.startsWith("component.group=")) {
                        if (groupName != null) {
                            added = addFolder(toolBar, groupName, added);
                        }
                        groupName = parseValue(line);
                        toolBar = new JToolBar(JToolBar.VERTICAL);
                        toolBar.setBackground(FOLDER_PANE_BACKGROUND);
                        toolBar.setFloatable(false);
                        toolBar.setLayout(new GridLayout(0, 1));
                        toolBars.add(toolBar);
                    } else {
                        JToggleButton tb = initBean(line);
                        if (tb != null) {
                            buttonGroup.add(tb);
                            toolBar.add(tb);
                        }
                        tb.setTransferHandler(new PaletteTransferHandler());
                        tb.addMouseListener(mouseProxy);
                        tb.addMouseMotionListener(mouseProxy);
                    }
                }
            }
            if (groupName != null) {
                addFolder(toolBar, groupName, added);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (input != null) {
                try {
                    input.close();
                } catch (Exception e) {
                }
            }
        }
    }

    private JToggleButton initBean(String line) {
        try {
            String componentName = parseKey(line);
            String classname = parseValue(line);
            Class bean_class = Class.forName(classname);
            BeanInfo beanInfo = Introspector.getBeanInfo(bean_class);
            final BeanInfoToggleButton tb = new BeanInfoToggleButton(beanInfo);
            tb.setText(componentName);
            tb.setToolTipText(bean_class.getName());
            tb.setHorizontalAlignment(SwingConstants.LEFT);

            Image image = beanInfo.getIcon(BeanInfo.ICON_COLOR_16x16);

            if (image != null) {
                tb.setIcon(new ImageIcon(image));
            }
            tb.addItemListener(new ItemListener() {

                        public void itemStateChanged(ItemEvent e) {
                            if (e.getStateChange() == ItemEvent.SELECTED) {
                                folderPane.requestFocus();
                                ActionEvent evt=new ActionEvent(e.getSource(), 0, "selection");
                                fireActionPerformed(evt);
                            }
                        }
                    });
            tb.addMouseListener(new MouseAdapter() {

                        @Override
                public void mouseEntered(MouseEvent e) {
                            resetRollover(e.getSource());
                        }
                    });

            return tb;
        } catch (Exception e) {
            e.printStackTrace();

            return null;
        }
    }

    private String parseKey(String line) {
        String key = line;
        int index = line.indexOf("=");

        if (index != -1) {
            key = line.substring(0, index);
        }

        return key;
    }

    private String parseValue(String line) {
        String value = null;
        int index = line.indexOf("=");

        if (index != -1) {
            value = line.substring(index + 1);
        }

        return value;
    }

    public void reset() {
        buttonGroup.clearSelection();
        resetRollover(null);
    }

    private void resetRollover(Object current) {
        Enumeration<AbstractButton> buttons = buttonGroup.getElements();
        while (buttons.hasMoreElements()) {
            AbstractButton button = buttons.nextElement();

            if (button == current) {
                continue;
            }

            ButtonModel model = button.getModel();

            if (model.isRollover()) {
                model.setRollover(false);
            }
        }

        folderPane.requestFocus();
        folderPane.repaint();
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜av影视| 精品盗摄一区二区三区| 精品国产麻豆免费人成网站| 国产精品不卡视频| 美女视频第一区二区三区免费观看网站| 成人精品免费看| 久久综合九色综合97婷婷| 亚洲电影一级片| 色婷婷久久久久swag精品| 国产免费观看久久| 免费日本视频一区| 欧美日韩国产另类一区| 亚洲综合在线第一页| 99久久国产综合精品麻豆| 久久久国产午夜精品 | 国产精品乱子久久久久| 青青草伊人久久| 4438x亚洲最大成人网| 亚洲欧美日韩国产一区二区三区| 狠狠色伊人亚洲综合成人| 欧美日韩日本视频| 一区二区三区日本| 99久久er热在这里只有精品15 | 国产麻豆视频一区二区| 日韩一区二区三区在线视频| 日韩av一区二区三区| 欧美日韩精品系列| 视频一区二区三区入口| 在线观看不卡一区| 亚洲三级免费电影| 91在线精品一区二区三区| 国产精品麻豆网站| 国产精品一区一区三区| 欧美电影在线免费观看| 视频在线在亚洲| 91精品国产91久久久久久一区二区 | 狠狠久久亚洲欧美| 久久婷婷综合激情| 国产成人夜色高潮福利影视| 国产午夜亚洲精品理论片色戒| 丁香五精品蜜臀久久久久99网站| 国产精品女上位| 欧美专区亚洲专区| 首页欧美精品中文字幕| 91精品国产欧美一区二区成人| 日韩电影在线观看网站| 日韩色视频在线观看| 国产成人在线视频网站| 精品国产精品一区二区夜夜嗨| 国产精品原创巨作av| 国产精品午夜春色av| 99久久综合精品| 亚洲激情一二三区| 欧美一区二区在线视频| 精彩视频一区二区三区| 国产精品美女久久久久aⅴ国产馆| 高清不卡在线观看av| 亚洲主播在线观看| 日韩你懂的在线观看| thepron国产精品| 婷婷久久综合九色综合绿巨人| 欧美一区二区精品| 国产成人精品午夜视频免费| 亚洲在线观看免费视频| 欧美综合视频在线观看| 国产精品一区二区91| 国产精品午夜电影| 91精品国产综合久久久久久漫画| 国产老女人精品毛片久久| 国产精品麻豆网站| 欧美老肥妇做.爰bbww| 国产高清在线精品| 亚洲午夜久久久久久久久电影院| 91麻豆精品国产| 九九久久精品视频| 亚洲欧美日韩电影| 91精品国产综合久久蜜臀| 丰满少妇在线播放bd日韩电影| 亚洲午夜羞羞片| 欧美激情资源网| 欧美日精品一区视频| 国产v综合v亚洲欧| 午夜精品福利久久久| 国产欧美精品一区二区三区四区| 色国产精品一区在线观看| 日韩电影免费在线看| 亚洲欧美在线aaa| 欧美精品一区二区久久婷婷| 精品视频在线免费观看| 91热门视频在线观看| 国产一区二区在线电影| 日日摸夜夜添夜夜添亚洲女人| 欧美国产精品一区二区| 久久伊99综合婷婷久久伊| 国内精品在线播放| 亚洲一区二区三区免费视频| 国产精品婷婷午夜在线观看| 精品国产免费视频| 欧美视频一区在线观看| 91免费精品国自产拍在线不卡| 国产精品系列在线观看| 国产美女在线精品| 精品一区二区在线免费观看| 午夜久久福利影院| 日韩中文字幕一区二区三区| 亚洲一二三区在线观看| 亚洲在线成人精品| 一区二区三区四区高清精品免费观看| 欧美国产1区2区| 国产精品久久久爽爽爽麻豆色哟哟| 久久久久久久久久久久电影| 欧美精品一区二区在线播放| 精品国产免费视频| 久久久www成人免费毛片麻豆 | 欧美丝袜丝交足nylons| 色婷婷久久久久swag精品| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美绝品在线观看成人午夜影视| a级高清视频欧美日韩| 久久99久久99精品免视看婷婷| 91高清视频在线| 亚洲国产一区二区视频| 中文字幕av一区二区三区高 | 久久精品国产在热久久| 国产激情91久久精品导航| 蜜臀av亚洲一区中文字幕| 五月激情综合婷婷| 中文字幕国产一区| 欧美国产日本韩| 69堂国产成人免费视频| 精品日韩在线一区| 国产精品青草久久| 精品国产乱码久久久久久图片 | 精品电影一区二区三区| 亚洲成av人综合在线观看| 亚洲欧洲日本在线| 亚洲免费av高清| 亚洲综合精品自拍| 激情成人午夜视频| 精品一区二区三区免费观看| 国产精品久久久久久久久动漫| 亚洲一区二区三区不卡国产欧美 | 免费看欧美美女黄的网站| 中文字幕精品综合| 亚洲欧美日韩在线| 国产精品中文欧美| 日韩黄色免费电影| 精品一区二区三区的国产在线播放| 国产原创一区二区三区| 激情欧美一区二区三区在线观看| 成人午夜大片免费观看| 91精品国产一区二区三区蜜臀| 一本久道中文字幕精品亚洲嫩| 综合久久给合久久狠狠狠97色| 久久9热精品视频| 欧美激情中文字幕一区二区| eeuss影院一区二区三区| 精品亚洲成a人| 日韩国产欧美视频| 欧美一区二区三区免费视频| 亚洲制服欧美中文字幕中文字幕| 亚洲国产中文字幕在线视频综合| 国产成人亚洲综合a∨婷婷| 久久婷婷国产综合精品青草| 日本不卡免费在线视频| 欧美亚洲一区二区在线观看| 亚洲精品一线二线三线无人区| 亚洲成av人片一区二区| 中文字幕欧美一| 日韩午夜电影av| 成人网页在线观看| 欧美丰满美乳xxx高潮www| 日韩一区二区免费在线观看| 日本一区二区三区dvd视频在线| 日精品一区二区三区| 欧美极品少妇xxxxⅹ高跟鞋| 久久亚洲精华国产精华液| 欧美日韩dvd在线观看| 欧美一区二区网站| 国产福利不卡视频| 日韩精品久久久久久| 日韩一区有码在线| 国产午夜亚洲精品羞羞网站| 亚洲va天堂va国产va久| 六月丁香婷婷色狠狠久久| 久久久91精品国产一区二区精品| 国产欧美精品国产国产专区| 极品少妇xxxx精品少妇| 91精品欧美综合在线观看最新 | 972aa.com艺术欧美| 欧美国产成人精品| 高清不卡一区二区| 久久精品一区二区三区不卡牛牛| 久久精品国产一区二区三 | 日本韩国欧美三级| 亚洲视频在线观看一区| 成人avav影音| 亚洲猫色日本管| 欧美最新大片在线看| 亚洲第一成人在线|