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

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

?? navpanel.java

?? 該系統是一個基于p2p的即時聊天系統
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* * @(#) NAVPanel.java * Copyright 2004 HWStudio. All rights reserved. */package hws.item.smart.panel.navbar;//導入核心Java類庫import java.awt.Font;import java.awt.Graphics;import java.awt.Rectangle;import java.awt.FontMetrics;import java.awt.Image;import java.awt.Point;import java.awt.Button;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;import java.util.List;import java.util.ArrayList;import javax.swing.JPanel;//導入自定義Java類庫import hws.item.smart.misc.ColorShop;import hws.item.smart.misc.ImageShop;/** * 導航面板 * * @version 0.1 2005-08-07 * @author Hwerz */public class NAVPanel extends JPanel    implements ActionListener, MouseListener, MouseMotionListener {    /*------------------------------------------------------------------------*     *                                屬性定義                                *     *------------------------------------------------------------------------*/    /**     * 按鈕標簽的字體     */    public static final Font BUTTON_FONT = new Font("宋體", Font.PLAIN, 12);    /**     * 導航面板容納按鈕的總數     */    private static final int BUTTON_COUNT = 20;    /**     * 導航面板上的父按鈕數組     */    private Button parentButtons[];    /**     * 已經添加到面板上的父按鈕個數     */    private int numberOfParentButton;    /**     * 被選中父按鈕的索引     */    private int selectedParentButtonIndex;    /**     * 父按鈕的高度     */    private int heightOfParentButton;    /**     * 每個父按鈕里面所包括的子按鈕     */    private Image sonButtons[][];    /**     * 子按鈕的標簽     */    private String sonButtonLabels[][];    /**     * 每個組里子按鈕的個數     */    private int numberOfSonButton[];    /**     * 子按鈕所占面板寬度的比例     */    private int widthPercentOfSonButton;    /**     * 子按鈕之間的間距     */    private int deltaBetweenSonButtons;    /**     * 第一個被顯示的子按鈕     */    private int theFirstDisplaySonButton;    /**     * 被按下的子按鈕     */    private int pressedSonButton;    /**     * 單擊則向上滾動的帶箭頭小按鈕     */    private Image slideUpButton;    /**     * 單擊則向下滾動的帶箭頭小按鈕     */    private Image slideDownButton;    /**     * 是否顯示slideDownButton     */    private boolean showSlideDownButton;    /**     * 子按鈕的滾動次數     */    private int slideStep;    /**     * 子按鈕的滾動節奏     */    private int slideIndex;    /**     * 記錄鼠標的當前位置     */    private Point mousePoint;    /**     * 事件監聽器集合     */    private List listeners;    /*------------------------------------------------------------------------*     *                                構造函數                                *     *------------------------------------------------------------------------*/    /**     * Create a new instance of this class     */    public NAVPanel() {        super();        parentButtons = new Button[BUTTON_COUNT];        numberOfParentButton = 0;        selectedParentButtonIndex = -1;        heightOfParentButton = 25;                sonButtons = new Image[BUTTON_COUNT][BUTTON_COUNT];        sonButtonLabels = new String[BUTTON_COUNT][BUTTON_COUNT];        numberOfSonButton = new int[BUTTON_COUNT];                widthPercentOfSonButton = 40;        deltaBetweenSonButtons = 20;        theFirstDisplaySonButton = -1;        pressedSonButton = -1;                slideUpButton = ImageShop.UP_IMAGEICON.getImage();        slideDownButton = ImageShop.DOWN_IMAGEICON.getImage();        slideStep = 3;        showSlideDownButton = false;        slideIndex = 0;                mousePoint = null;                listeners = new ArrayList();                setLayout(null);        setBackground(ColorShop.NAVPANEL_BG_COLOR);        addMouseMotionListener(this);        addMouseListener(this);    }    /*------------------------------------------------------------------------*     *                                公共方法                                *     *------------------------------------------------------------------------*/    /**     * 添加SonButtonClickedListener事件監聽器     *     * @param listener 待添加的SonButtonClickedListener     */    public synchronized void addSonButtonClickedListener(        SonButtonClickedListener listener) {        listeners.add(listener);    }    /**     * 刪除SonButtonClickedListener事件監聽器     *     * @param listener 待刪除的SonButtonClickedListener     */    public synchronized void removeSonButtonClickedListener(        SonButtonClickedListener listener) {        listeners.remove(listener);    }    /**     * 返回父按鈕的個數     *     * @return 父按鈕的個數     */    public int getNumberOfParentButton() {        return numberOfParentButton;    }    /**     * 返回指定索引的父按鈕對象     *     * @param index 父按鈕的索引     * @return 指定索引的父按鈕對象     */    public Button getParentButton(int index) {        Button parentButton = null;        if (index >= 0 && index < numberOfParentButton) {            parentButton = parentButtons[index];        }        return parentButton;    }    /**     * 添加父按鈕     *     * @param text 待添加父按鈕的文本     * @return 如果添加成功則返回true,否則返回false     */    public boolean addParentButton(String text) {        boolean success = false;        int i = numberOfParentButton;        if (i < BUTTON_COUNT) {            Button button = new Button(text);            parentButtons[i] = button;            numberOfSonButton[i] = 0;            numberOfParentButton++;            add(button);            button.addActionListener(this);            setSelectedParentButton(i);            success = true;        }         return success;    }    /**     * 向指定的父按鈕所在的組里添加子按鈕     *     * @param index 指定父按鈕的索引     * @param image 待添加子按鈕的圖標     * @param text 待添加子按鈕的文本     */    public void addSonToParent(int index, Image image, String text) {        if (index < numberOfParentButton             && numberOfSonButton[index] < BUTTON_COUNT) {            sonButtons[index][numberOfSonButton[index]] = image;            sonButtonLabels[index][numberOfSonButton[index]] = text;            numberOfSonButton[index]++;            repaint();        }    }    /**     * 選中指定索引的父按鈕     *     * @param index 父按鈕的索引     */    public void setSelectedParentButton(int index) {        if (index >= 0 && index < numberOfParentButton) {            if (selectedParentButtonIndex != index) {                selectedParentButtonIndex = index;                theFirstDisplaySonButton = 0;                repaint();            }        }    }    /*------------------------------------------------------------------------*     *                                私有方法                                *     *------------------------------------------------------------------------*/    /**     * 返回子按鈕的寬度(注意:所有子按鈕的寬度都一致)     *     * @return 子按鈕的寬度     */    private int getSonButtonWidth() {        return (widthPercentOfSonButton * getWidth()) / 100;    }    /**     * 返回指定子按鈕的邊界(注意:這個子按鈕是隸屬于當前選定的父按鈕)     *     * @param index 子按鈕的索引號     * @return 子按鈕的邊界     */    private Rectangle getSonButtonRectangle(int index) {        int x = (getWidth() - getSonButtonWidth()) / 2;        int y = (selectedParentButtonIndex + 1) * heightOfParentButton            + (index - theFirstDisplaySonButton) * (getSonButtonWidth()            + deltaBetweenSonButtons) + deltaBetweenSonButtons / 2;        Rectangle rectangle = new Rectangle(x, y, getSonButtonWidth(),            getSonButtonWidth());        return rectangle;    }    /**     * 返回slideDownButton的邊界     *     * @return slideDownButton的邊界     */    private Rectangle getSlideDownButtonRect() {        int y = getHeight() - (numberOfParentButton            - selectedParentButtonIndex) * heightOfParentButton;        Rectangle rectangle = new Rectangle(getWidth() - 20, y, 16, 16);        return rectangle;    }    /**     * 返回slideUpButton的邊界     *     * @return slideUpButton的邊界     */    private Rectangle getSlideUpButtonRect() {        int y = (selectedParentButtonIndex + 1) * heightOfParentButton + 16;        Rectangle rectangle = new Rectangle(getWidth() - 20, y, 16, 16);        return rectangle;    }    /**     * 返回指定位置處按鈕的索引如果是父按鈕,則返回值為索引的相反數減去2;如果是子按     * 鈕,則返回索引值     *     * @param point 指定的位置     * @return 指定位置處按鈕的索引     */    private int getButtonIndex(Point point) {        int index = -1;        if (point != null) {            if (numberOfParentButton != 0) {                for (int i = 0; i < numberOfParentButton; i++) {                    Rectangle rectangle = getParentButton(i).getBounds();                    //鼠標在某一父按鈕的上面                    if (rectangle.contains(point)) {                        index = -i - 2;                        break;                    }                }                if (index == -1) {                    for (int i = theFirstDisplaySonButton;                        i < theFirstDisplaySonButton                        + numberOfSonButton[selectedParentButtonIndex]; i++) {                        Rectangle rectangle = getSonButtonRectangle(i);                        //鼠標在某一子按鈕的上面                        if (rectangle.contains(point)) {                            index = i;                            break;                        }                    }                }            }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
jvid福利写真一区二区三区| 久久夜色精品一区| 日韩欧美一二三| 亚洲天堂成人在线观看| 伦理电影国产精品| 在线一区二区三区做爰视频网站| 久久久国产精华| 日韩高清不卡在线| 91猫先生在线| 中文字幕在线不卡| 国产电影一区在线| 久久亚洲一区二区三区四区| 婷婷综合久久一区二区三区| 在线视频你懂得一区二区三区| 国产色婷婷亚洲99精品小说| 国产一区视频在线看| 日韩欧美高清dvd碟片| 日本一道高清亚洲日美韩| 欧美性猛交一区二区三区精品 | 高清在线成人网| 日韩三级在线免费观看| 亚洲第一在线综合网站| 一本久久a久久精品亚洲| 99麻豆久久久国产精品免费| 日本韩国视频一区二区| 日韩美女主播在线视频一区二区三区| 亚洲区小说区图片区qvod| 国产一区二区三区四| 日韩欧美在线综合网| 亚洲成人动漫av| 欧美图区在线视频| 亚洲综合999| 色视频欧美一区二区三区| 亚洲欧美区自拍先锋| 色婷婷av一区二区三区软件| 亚洲日本va在线观看| 97精品视频在线观看自产线路二| 中文字幕一区二区三区乱码在线| 91亚洲国产成人精品一区二区三 | 色欲综合视频天天天| 中文字幕一区二区三区四区不卡| jizz一区二区| 亚洲精品免费电影| 欧美三级中文字幕| 奇米影视一区二区三区| 欧美成人精品3d动漫h| 国产一区二区三区观看| 国产无遮挡一区二区三区毛片日本| 成人性生交大片免费看中文| 亚洲天堂免费在线观看视频| 欧美日韩一区国产| 久久福利视频一区二区| 中文字幕av一区二区三区高| 色综合久久天天| 三级亚洲高清视频| 久久免费的精品国产v∧| 97久久超碰精品国产| 水野朝阳av一区二区三区| 精品国产免费视频| 色综合色狠狠天天综合色| 日本午夜精品一区二区三区电影| 精品国产一区a| 91在线视频播放地址| 日韩电影在线一区二区| 久久精品一区蜜桃臀影院| 91免费在线看| 久久99在线观看| 亚洲图片你懂的| 精品美女被调教视频大全网站| 99精品视频在线观看| 日本亚洲三级在线| 亚洲人成在线观看一区二区| 日韩久久精品一区| 在线一区二区三区| 国产成人亚洲精品青草天美| 亚洲成av人在线观看| 国产欧美日韩另类一区| 欧美精品九九99久久| 大尺度一区二区| 麻豆久久久久久久| 一区二区三区91| 国产精品亲子伦对白| 欧美电影免费提供在线观看| 一本色道久久综合亚洲精品按摩| 久久se这里有精品| 天天亚洲美女在线视频| 一区二区三区在线免费视频| 国产欧美一区二区精品性| 7777女厕盗摄久久久| 在线观看日韩一区| 国产v综合v亚洲欧| 韩国视频一区二区| 美女精品一区二区| 亚洲高清免费视频| 樱桃视频在线观看一区| 亚洲欧洲另类国产综合| 久久久精品综合| 久久中文字幕电影| 日韩免费视频一区二区| 欧美一卡二卡三卡| 欧美日韩国产一级二级| 色88888久久久久久影院野外| 不卡av电影在线播放| 国产高清精品久久久久| 九色|91porny| 国产一区二区三区视频在线播放| 美女一区二区在线观看| 日本最新不卡在线| 蜜桃视频免费观看一区| 日韩avvvv在线播放| 青青草国产成人av片免费| 日产精品久久久久久久性色| 免费观看一级欧美片| 麻豆91免费观看| 精品一区二区三区香蕉蜜桃| 裸体一区二区三区| 精品亚洲成av人在线观看| 久久99精品视频| 极品美女销魂一区二区三区免费 | 久久女同精品一区二区| 国产亚洲成av人在线观看导航| 久久在线免费观看| 中文字幕精品—区二区四季| 欧美激情一区三区| 国产精品色婷婷久久58| 一区二区三区免费看视频| 午夜精品一区在线观看| 日精品一区二区| 国产中文字幕精品| www.综合网.com| 欧美日韩一区中文字幕| 精品国产乱码久久久久久蜜臀| 久久奇米777| 亚洲欧美欧美一区二区三区| 亚洲国产中文字幕| 日本一不卡视频| 大陆成人av片| 欧美日韩一区二区三区在线 | 综合久久国产九一剧情麻豆| 亚洲精品成人a在线观看| 天天综合网 天天综合色| 久久精品久久久精品美女| 成人免费毛片a| 欧美日韩成人综合天天影院| 精品国产免费久久| 亚洲女人的天堂| 裸体歌舞表演一区二区| 99vv1com这只有精品| 欧美一二三四在线| 亚洲色欲色欲www| 九九热在线视频观看这里只有精品| av不卡免费电影| 7777精品伊人久久久大香线蕉最新版| 国产天堂亚洲国产碰碰| 亚洲图片欧美视频| 国产盗摄精品一区二区三区在线| 欧美亚洲国产一区二区三区| 久久夜色精品国产噜噜av| 亚洲综合丁香婷婷六月香| 国产精品香蕉一区二区三区| 欧美日韩的一区二区| 国产精品美女久久久久久| 久久成人麻豆午夜电影| 色综合天天综合狠狠| 久久蜜桃av一区二区天堂| 午夜影视日本亚洲欧洲精品| 成人av高清在线| 欧美成人aa大片| 亚洲成人精品一区| 91网站黄www| 国产日韩高清在线| 日本不卡的三区四区五区| 色94色欧美sute亚洲13| 国产三级精品视频| 久久成人免费网站| 3d动漫精品啪啪1区2区免费| 一区二区三区日韩欧美| 成人app软件下载大全免费| 日韩三级电影网址| 午夜婷婷国产麻豆精品| 国模娜娜一区二区三区| 91蜜桃免费观看视频| 久久久五月婷婷| 日韩精品国产精品| 在线欧美日韩精品| 一区在线观看免费| 国产成a人亚洲| 久久香蕉国产线看观看99| 日本不卡视频在线观看| 欧美妇女性影城| 亚洲一区二区三区四区不卡| 色94色欧美sute亚洲线路一ni| 国产精品久久久久精k8 | 国产成人午夜高潮毛片| 日韩三级在线观看| 美女网站在线免费欧美精品| 91精品国产欧美一区二区成人| 青青国产91久久久久久 | 日韩女优毛片在线| 亚洲国产精品自拍|