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

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

?? basictabbedpaneui.java

?? java1.6眾多例子參考
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
     * in the JTabbedPane's coordinate space.     */    public int tabForCoordinate(JTabbedPane pane, int x, int y) {        return tabForCoordinate(pane, x, y, true);    }    private int tabForCoordinate(JTabbedPane pane, int x, int y,                                 boolean validateIfNecessary) {        if (validateIfNecessary) {            ensureCurrentLayout();        }        if (isRunsDirty) {            // We didn't recalculate the layout, runs and tabCount may not            // line up, bail.            return -1;        }        Point p = new Point(x, y);        if (scrollableTabLayoutEnabled()) {            translatePointToTabPanel(x, y, p);            Rectangle viewRect = tabScroller.viewport.getViewRect();            if (!viewRect.contains(p)) {                return -1;            }        }        int tabCount = tabPane.getTabCount();        for (int i = 0; i < tabCount; i++) {            if (rects[i].contains(p.x, p.y)) {                return i;            }        }        return -1;    }    /**     * Returns the bounds of the specified tab in the coordinate space     * of the JTabbedPane component.  This is required because the tab rects     * are by default defined in the coordinate space of the component where     * they are rendered, which could be the JTabbedPane     * (for WRAP_TAB_LAYOUT) or a ScrollableTabPanel (SCROLL_TAB_LAYOUT).     * This method should be used whenever the tab rectangle must be relative     * to the JTabbedPane itself and the result should be placed in a     * designated Rectangle object (rather than instantiating and returning     * a new Rectangle each time). The tab index parameter must be a valid      * tabbed pane tab index (0 to tab count - 1, inclusive).  The destination     * rectangle parameter must be a valid <code>Rectangle</code> instance.     * The handling of invalid parameters is unspecified.     *     * @param tabIndex the index of the tab     * @param dest the rectangle where the result should be placed     * @return the resulting rectangle     *     * @since 1.4     */    protected Rectangle getTabBounds(int tabIndex, Rectangle dest) {        dest.width = rects[tabIndex].width;        dest.height = rects[tabIndex].height;        if (scrollableTabLayoutEnabled()) { // SCROLL_TAB_LAYOUT            // Need to translate coordinates based on viewport location &             // view position            Point vpp = tabScroller.viewport.getLocation();            Point viewp = tabScroller.viewport.getViewPosition();            dest.x = rects[tabIndex].x + vpp.x - viewp.x;            dest.y = rects[tabIndex].y + vpp.y - viewp.y;        } else { // WRAP_TAB_LAYOUT            dest.x = rects[tabIndex].x;            dest.y = rects[tabIndex].y;        }        return dest;    }    /**     * Returns the index of the tab closest to the passed in location, note     * that the returned tab may not contain the location x,y.     */    private int getClosestTab(int x, int y) {        int min = 0;        int tabCount = Math.min(rects.length, tabPane.getTabCount());        int max = tabCount;        int tabPlacement = tabPane.getTabPlacement();        boolean useX = (tabPlacement == TOP || tabPlacement == BOTTOM);        int want = (useX) ? x : y;        while (min != max) {            int current = (max + min) / 2;            int minLoc;            int maxLoc;            if (useX) {                minLoc = rects[current].x;                maxLoc = minLoc + rects[current].width;            }            else {                minLoc = rects[current].y;                maxLoc = minLoc + rects[current].height;            }            if (want < minLoc) {                max = current;                if (min == max) {                    return Math.max(0, current - 1);                }            }            else if (want >= maxLoc) {                min = current;                if (max - min <= 1) {                    return Math.max(current + 1, tabCount - 1);                }            }            else {                return current;            }        }        return min;    }    /**     * Returns a point which is translated from the specified point in the     * JTabbedPane's coordinate space to the coordinate space of the     * ScrollableTabPanel.  This is used for SCROLL_TAB_LAYOUT ONLY.     */    private Point translatePointToTabPanel(int srcx, int srcy, Point dest) {        Point vpp = tabScroller.viewport.getLocation();        Point viewp = tabScroller.viewport.getViewPosition();        dest.x = srcx - vpp.x + viewp.x;        dest.y = srcy - vpp.y + viewp.y;        return dest;    }// BasicTabbedPaneUI methods    protected Component getVisibleComponent() {        return visibleComponent;    }    protected void setVisibleComponent(Component component) {        if (visibleComponent != null                && visibleComponent != component                && visibleComponent.getParent() == tabPane                && visibleComponent.isVisible()) {            visibleComponent.setVisible(false);        }        if (component != null && !component.isVisible()) {            component.setVisible(true);        }        visibleComponent = component;    }    protected void assureRectsCreated(int tabCount) {        int rectArrayLen = rects.length;         if (tabCount != rectArrayLen ) {            Rectangle[] tempRectArray = new Rectangle[tabCount];            System.arraycopy(rects, 0, tempRectArray, 0,                              Math.min(rectArrayLen, tabCount));            rects = tempRectArray;            for (int rectIndex = rectArrayLen; rectIndex < tabCount; rectIndex++) {                rects[rectIndex] = new Rectangle();            }        }     }    protected void expandTabRunsArray() {        int rectLen = tabRuns.length;        int[] newArray = new int[rectLen+10];        System.arraycopy(tabRuns, 0, newArray, 0, runCount);        tabRuns = newArray;    }    protected int getRunForTab(int tabCount, int tabIndex) {        for (int i = 0; i < runCount; i++) {            int first = tabRuns[i];            int last = lastTabInRun(tabCount, i);            if (tabIndex >= first && tabIndex <= last) {                return i;            }        }        return 0;    }    protected int lastTabInRun(int tabCount, int run) {        if (runCount == 1) {            return tabCount - 1;        }        int nextRun = (run == runCount - 1? 0 : run + 1);        if (tabRuns[nextRun] == 0) {            return tabCount - 1;        }        return tabRuns[nextRun]-1;    }    protected int getTabRunOverlay(int tabPlacement) {        return tabRunOverlay;    }    protected int getTabRunIndent(int tabPlacement, int run) {        return 0;    }    protected boolean shouldPadTabRun(int tabPlacement, int run) {        return runCount > 1;    }    protected boolean shouldRotateTabRuns(int tabPlacement) {        return true;    }    protected Icon getIconForTab(int tabIndex) {        return (!tabPane.isEnabled() || !tabPane.isEnabledAt(tabIndex))?                          tabPane.getDisabledIconAt(tabIndex) : tabPane.getIconAt(tabIndex);    }    /**      * Returns the text View object required to render stylized text (HTML) for     * the specified tab or null if no specialized text rendering is needed     * for this tab. This is provided to support html rendering inside tabs.     *     * @param tabIndex the index of the tab     * @return the text view to render the tab's text or null if no     *         specialized rendering is required     *     * @since 1.4     */    protected View getTextViewForTab(int tabIndex) {        if (htmlViews != null) {            return (View)htmlViews.elementAt(tabIndex);        }        return null;    }    protected int calculateTabHeight(int tabPlacement, int tabIndex, int fontHeight) {        int height = 0;        Component c = tabPane.getTabComponentAt(tabIndex);        if (c != null) {            height = c.getPreferredSize().height;        } else {            View v = getTextViewForTab(tabIndex);            if (v != null) {                // html                height += (int) v.getPreferredSpan(View.Y_AXIS);            } else {                // plain text                height += fontHeight;            }            Icon icon = getIconForTab(tabIndex);            if (icon != null) {                height = Math.max(height, icon.getIconHeight());            }        }        Insets tabInsets = getTabInsets(tabPlacement, tabIndex);        height += tabInsets.top + tabInsets.bottom + 2;        return height;    }     protected int calculateMaxTabHeight(int tabPlacement) {        FontMetrics metrics = getFontMetrics();        int tabCount = tabPane.getTabCount();        int result = 0;         int fontHeight = metrics.getHeight();        for(int i = 0; i < tabCount; i++) {            result = Math.max(calculateTabHeight(tabPlacement, i, fontHeight), result);        }        return result;     }    protected int calculateTabWidth(int tabPlacement, int tabIndex, FontMetrics metrics) {        Insets tabInsets = getTabInsets(tabPlacement, tabIndex);        int width = tabInsets.left + tabInsets.right + 3;        Component tabComponent = tabPane.getTabComponentAt(tabIndex);        if (tabComponent != null) {            width += tabComponent.getPreferredSize().width;        } else {            Icon icon = getIconForTab(tabIndex);            if (icon != null) {                width += icon.getIconWidth() + textIconGap;            }            View v = getTextViewForTab(tabIndex);            if (v != null) {                // html                width += (int) v.getPreferredSpan(View.X_AXIS);            } else {                // plain text                String title = tabPane.getTitleAt(tabIndex);                width += SwingUtilities2.stringWidth(tabPane, metrics, title);            }        }        return width;    }        protected int calculateMaxTabWidth(int tabPlacement) {        FontMetrics metrics = getFontMetrics();        int tabCount = tabPane.getTabCount();        int result = 0;         for(int i = 0; i < tabCount; i++) {            result = Math.max(calculateTabWidth(tabPlacement, i, metrics), result);        }        return result;     }    protected int calculateTabAreaHeight(int tabPlacement, int horizRunCount, int maxTabHeight) {        Insets tabAreaInsets = getTabAreaInsets(tabPlacement);        int tabRunOverlay = getTabRunOverlay(tabPlacement);        return (horizRunCount > 0?                 horizRunCount * (maxTabHeight-tabRunOverlay) + tabRunOverlay +                 tabAreaInsets.top + tabAreaInsets.bottom :                 0);    }    protected int calculateTabAreaWidth(int tabPlacement, int vertRunCount, int maxTabWidth) {         Insets tabAreaInsets = getTabAreaInsets(tabPlacement);        int tabRunOverlay = getTabRunOverlay(tabPlacement);        return (vertRunCount > 0?                 vertRunCount * (maxTabWidth-tabRunOverlay) + tabRunOverlay +                 tabAreaInsets.left + tabAreaInsets.right :                 0);    }    protected Insets getTabInsets(int tabPlacement, int tabIndex) {        return tabInsets;    }    protected Insets getSelectedTabPadInsets(int tabPlacement) {        rotateInsets(selectedTabPadInsets, currentPadInsets, tabPlacement);        return currentPadInsets;    }    protected Insets getTabAreaInsets(int tabPlacement) {        rotateInsets(tabAreaInsets, currentTabAreaInsets, tabPlacement);        return currentTabAreaInsets;    }    protected Insets getContentBorderInsets(int tabPlacement) {        return contentBorderInsets;    }        protected FontMetrics getFontMetrics() {        Font font = tabPane.getFont();        return tabPane.getFontMetrics(font);    }// Tab Navigation methods    protected void navigateSelectedTab(int direction) {        int tabPlacement = tabPane.getTabPlacement();        int current = DefaultLookup.getBoolean(tabPane, this,                             "TabbedPane.selectionFollowsFocus", true) ?                             tabPane.getSelectedIndex() : getFocusIndex();        int tabCount = tabPane.getTabCount();        boolean leftToRight = BasicGraphicsUtils.isLeftToRight(tabPane);        // If we have no tabs then don't navigate.        if (tabCount <= 0) {            return;        }        int offset;      

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本大道久久a久久综合| 国产大陆a不卡| 日本一区二区不卡视频| 欧美剧情片在线观看| 成人午夜视频在线| 激情国产一区二区| 天堂av在线一区| 亚洲欧洲在线观看av| 久久众筹精品私拍模特| 欧美日韩免费视频| 色婷婷亚洲婷婷| 成人午夜碰碰视频| 国产一区二区在线观看免费| 亚洲国产中文字幕在线视频综合| 亚洲欧洲日韩一区二区三区| 亚洲精品一区二区三区在线观看| 欧美剧情电影在线观看完整版免费励志电影 | 美国毛片一区二区| 一区二区三区欧美激情| 国产精品久久久久久久第一福利| 26uuu国产电影一区二区| 欧美一区二区日韩一区二区| 欧美无人高清视频在线观看| 99国产精品国产精品毛片| 国产99一区视频免费| 国产成人小视频| 国产成人综合亚洲91猫咪| 激情久久五月天| 国模大尺度一区二区三区| 在线观看国产91| 99热在这里有精品免费| 成人av动漫在线| 成人免费看的视频| 风间由美中文字幕在线看视频国产欧美 | 国产精品久久久久久久久快鸭| 久久人人爽爽爽人久久久| 精品动漫一区二区三区在线观看| 日韩欧美中文字幕公布| 日韩亚洲国产中文字幕欧美| 欧美一级二级在线观看| 日韩一区二区三区在线视频| 欧美不卡一区二区三区| 久久综合久久99| 中文字幕av一区二区三区免费看 | 色婷婷国产精品综合在线观看| 91在线观看成人| 日本乱人伦一区| 欧美日韩视频在线观看一区二区三区| 精品视频色一区| 日韩欧美一区在线| 久久精品欧美日韩精品 | 久久精品国产亚洲高清剧情介绍 | 久久久久久免费网| 国产精品日韩成人| **欧美大码日韩| 亚洲综合在线第一页| 亚洲国产日韩av| 秋霞电影网一区二区| 国产精品亚洲综合一区在线观看| 成人美女在线视频| 色嗨嗨av一区二区三区| 69堂国产成人免费视频| 精品99999| 中文字幕中文乱码欧美一区二区 | 亚洲色图第一区| 亚洲午夜免费电影| 麻豆精品在线播放| 成人午夜视频在线| 欧美日韩在线直播| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 久久99精品久久久久| 国产91高潮流白浆在线麻豆| 欧美性一二三区| 欧美tickling网站挠脚心| 国产精品久久久久久久久动漫 | 国产河南妇女毛片精品久久久| 92国产精品观看| 日韩欧美不卡在线观看视频| 国产精品理论片在线观看| 亚洲v中文字幕| 成人黄色在线看| 91精品国产综合久久久久久漫画 | 国产三级欧美三级| 亚洲一级不卡视频| 国产乱淫av一区二区三区 | wwwwxxxxx欧美| 亚洲激情欧美激情| 国产又黄又大久久| 欧美日韩国产一区| 国产精品成人免费精品自在线观看| 偷拍日韩校园综合在线| 成人在线视频首页| 欧美一二三区精品| 亚洲综合在线免费观看| 国产精品99久久久久久久vr | 亚洲天堂av一区| 美国欧美日韩国产在线播放| 色爱区综合激月婷婷| 国产欧美日韩一区二区三区在线观看| 亚洲国产毛片aaaaa无费看| 国产成人精品在线看| 欧美一区日本一区韩国一区| 亚洲人成7777| 国产成人一级电影| 精品国精品自拍自在线| 亚洲国产日韩精品| 色综合一区二区| 中文字幕免费观看一区| 久久国产婷婷国产香蕉| 欧美日韩精品一区二区在线播放| 亚洲人成网站精品片在线观看 | 欧美一区二区三区人| 亚洲另类春色国产| 99久久精品国产一区二区三区| 久久综合久色欧美综合狠狠| 奇米色777欧美一区二区| 色婷婷亚洲综合| 1000部国产精品成人观看| 国产馆精品极品| 久久九九影视网| 国产中文字幕精品| 日韩三级免费观看| 日韩高清中文字幕一区| 91国偷自产一区二区三区观看| 中文字幕一区二区三区乱码在线| 国产激情一区二区三区四区 | 欧美日韩国产乱码电影| 亚洲亚洲人成综合网络| 欧美专区亚洲专区| 亚洲综合偷拍欧美一区色| 在线亚洲一区二区| 一区二区三区日本| 欧美午夜免费电影| 午夜久久久久久久久| 在线综合+亚洲+欧美中文字幕| 日韩vs国产vs欧美| 日韩三级伦理片妻子的秘密按摩| 毛片av一区二区| 精品国产乱码久久久久久蜜臀 | 亚洲黄色性网站| 在线影视一区二区三区| 亚洲成a人v欧美综合天堂下载| 欧美精品一级二级| 精品一区二区在线看| 久久久影院官网| k8久久久一区二区三区| 亚洲女人****多毛耸耸8| 欧美影视一区在线| 日韩精品免费专区| 精品国产乱码久久久久久久久| 国产自产视频一区二区三区| 国产精品美女久久福利网站| 日本伦理一区二区| 日韩经典一区二区| 久久夜色精品国产噜噜av| 成人av网站免费观看| 一区二区三区四区在线| 欧美日韩国产高清一区| 国产一区二区三区四区五区入口| 久久久久国产免费免费| 色婷婷综合激情| 蜜臀精品一区二区三区在线观看| 久久先锋影音av| 色婷婷综合久久久中文一区二区 | 国产精品日日摸夜夜摸av| 91蝌蚪porny| 日本特黄久久久高潮| 亚洲国产精品激情在线观看| 欧美午夜片在线观看| 国内国产精品久久| 亚洲精品亚洲人成人网在线播放| 欧美一区永久视频免费观看| 成人精品视频一区| 亚洲福利一二三区| 久久久三级国产网站| 在线中文字幕一区二区| 国产在线播放一区| 亚洲一区自拍偷拍| 国产欧美一区二区精品婷婷| 欧美日韩国产另类一区| 成人激情电影免费在线观看| 日本不卡视频在线观看| 国产精品美女久久久久久久| 在线不卡的av| gogo大胆日本视频一区| 老司机一区二区| 一区二区三区毛片| 国产欧美一区二区精品性色| 欧美一区日本一区韩国一区| 91女厕偷拍女厕偷拍高清| 蜜桃av一区二区| 亚洲综合一区二区| 国产精品女同互慰在线看| 欧美一区二区高清| 色婷婷av一区| 丁香激情综合国产| 久久超碰97中文字幕| 亚洲高清一区二区三区| 亚洲天堂av一区| 国产精品无码永久免费888|