⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 原始 -swingutilities.java

📁 Javapda繁体版代码, 这个我也没有看过,不过应该和那个简体的差不多,但还是有区别的
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                rectCount++;            }        } else {            /* 1 */            if (rectB.x <= rectA.x && rectB.y <= rectA.y) {                if ((rectB.x + rectB.width) > (rectA.x + rectA.width)) {                    t.x = rectA.x; t.y = rectB.y + rectB.height;                    t.width = rectA.width; t.height = rectA.y + rectA.height - (rectB.y + rectB.height);                    if(t.width > 0 && t.height > 0) {                        a = t;                        rectCount++;                    }                } else if ((rectB.y + rectB.height) > (rectA.y + rectA.height)) {                    t.setBounds((rectB.x + rectB.width), rectA.y,                                (rectA.x + rectA.width) - (rectB.x + rectB.width), rectA.height);                    if(t.width > 0 && t.height > 0) {                        a = t;                        rectCount++;                    }                } else {                    t.setBounds((rectB.x + rectB.width), rectA.y,                                (rectA.x + rectA.width) - (rectB.x + rectB.width),                                (rectB.y + rectB.height) - rectA.y);                    if(t.width > 0 && t.height > 0) {                        a = new Rectangle(t);                        rectCount++;                    }                    t.setBounds(rectA.x, (rectB.y + rectB.height), rectA.width,                                (rectA.y + rectA.height) - (rectB.y + rectB.height));                    if(t.width > 0 && t.height > 0) {                        b = new Rectangle(t);                        rectCount++;                    }                }            } else if (rectB.x <= rectA.x && (rectB.y + rectB.height) >= (rectA.y + rectA.height)) {                if ((rectB.x + rectB.width) > (rectA.x + rectA.width)) {                    t.setBounds(rectA.x, rectA.y, rectA.width, rectB.y - rectA.y);                    if(t.width > 0 && t.height > 0) {                        a = t;                        rectCount++;                    }                } else {                    t.setBounds(rectA.x, rectA.y, rectA.width, rectB.y - rectA.y);                    if(t.width > 0 && t.height > 0) {                        a = new Rectangle(t);                        rectCount++;                    }                    t.setBounds((rectB.x + rectB.width), rectB.y,                                (rectA.x + rectA.width) - (rectB.x + rectB.width),                                (rectA.y + rectA.height) - rectB.y);                    if(t.width > 0 && t.height > 0) {                        b = new Rectangle(t);                        rectCount++;                    }                }            } else if (rectB.x <= rectA.x) {                if ((rectB.x + rectB.width) >= (rectA.x + rectA.width)) {                    t.setBounds(rectA.x, rectA.y, rectA.width, rectB.y - rectA.y);                    if(t.width>0 && t.height > 0) {                        a = new Rectangle(t);                        rectCount++;                    }                    t.setBounds(rectA.x, (rectB.y + rectB.height), rectA.width,                                (rectA.y + rectA.height) - (rectB.y + rectB.height));                    if(t.width > 0 && t.height > 0) {                        b = new Rectangle(t);                        rectCount++;                    }                } else {                    t.setBounds(rectA.x, rectA.y, rectA.width, rectB.y - rectA.y);                    if(t.width > 0 && t.height > 0) {                        a = new Rectangle(t);                        rectCount++;                    }                    t.setBounds((rectB.x + rectB.width), rectB.y,                                (rectA.x + rectA.width) - (rectB.x + rectB.width),                                rectB.height);                    if(t.width > 0 && t.height > 0) {                        b = new Rectangle(t);                        rectCount++;                    }                    t.setBounds(rectA.x, (rectB.y + rectB.height), rectA.width,                                (rectA.y + rectA.height) - (rectB.y + rectB.height));                    if(t.width > 0 && t.height > 0) {                        c = new Rectangle(t);                        rectCount++;                    }                }            } else if (rectB.x <= (rectA.x + rectA.width) && (rectB.x + rectB.width) > (rectA.x + rectA.width)) {                if (rectB.y <= rectA.y && (rectB.y + rectB.height) > (rectA.y + rectA.height)) {                    t.setBounds(rectA.x, rectA.y, rectB.x - rectA.x, rectA.height);                    if(t.width > 0 && t.height > 0) {                        a = t;                        rectCount++;                    }                } else if (rectB.y <= rectA.y) {                    t.setBounds(rectA.x, rectA.y, rectB.x - rectA.x,                                (rectB.y + rectB.height) - rectA.y);                    if(t.width > 0 && t.height > 0) {                        a = new Rectangle(t);                        rectCount++;                    }                    t.setBounds(rectA.x, (rectB.y + rectB.height), rectA.width,                                (rectA.y + rectA.height) - (rectB.y + rectB.height));                    if(t.width > 0 && t.height > 0) {                        b = new Rectangle(t);                        rectCount++;                    }                } else if ((rectB.y + rectB.height) > (rectA.y + rectA.height)) {                    t.setBounds(rectA.x, rectA.y, rectA.width, rectB.y - rectA.y);                    if(t.width > 0 && t.height > 0) {                        a = new Rectangle(t);                        rectCount++;                    }                    t.setBounds(rectA.x, rectB.y, rectB.x - rectA.x,                                (rectA.y + rectA.height) - rectB.y);                    if(t.width > 0 && t.height > 0) {                        b = new Rectangle(t);                        rectCount++;                    }                } else {                    t.setBounds(rectA.x, rectA.y, rectA.width, rectB.y - rectA.y);                    if(t.width > 0 && t.height > 0) {                        a = new Rectangle(t);                        rectCount++;                    }                    t.setBounds(rectA.x, rectB.y, rectB.x - rectA.x,                                rectB.height);                    if(t.width > 0 && t.height > 0) {                        b = new Rectangle(t);                        rectCount++;                    }                    t.setBounds(rectA.x, (rectB.y + rectB.height), rectA.width,                                (rectA.y + rectA.height) - (rectB.y + rectB.height));                    if(t.width > 0 && t.height > 0) {                        c = new Rectangle(t);                        rectCount++;                    }                }            } else if (rectB.x >= rectA.x && (rectB.x + rectB.width) <= (rectA.x + rectA.width)) {                if (rectB.y <= rectA.y && (rectB.y + rectB.height) > (rectA.y + rectA.height)) {                    t.setBounds(rectA.x, rectA.y, rectB.x - rectA.x, rectA.height);                    if(t.width > 0 && t.height > 0) {                        a = new Rectangle(t);                        rectCount++;                    }                    t.setBounds((rectB.x + rectB.width), rectA.y,                                (rectA.x + rectA.width) - (rectB.x + rectB.width), rectA.height);                    if(t.width > 0 && t.height > 0) {                        b = new Rectangle(t);                        rectCount++;                    }                } else if (rectB.y <= rectA.y) {                    t.setBounds(rectA.x, rectA.y, rectB.x - rectA.x, rectA.height);                    if(t.width > 0 && t.height > 0) {                        a = new Rectangle(t);                        rectCount++;                    }                    t.setBounds(rectB.x, (rectB.y + rectB.height),                                rectB.width,                                (rectA.y + rectA.height) - (rectB.y + rectB.height));                    if(t.width > 0 && t.height > 0) {                        b = new Rectangle(t);                        rectCount++;                    }                    t.setBounds((rectB.x + rectB.width), rectA.y,                                (rectA.x + rectA.width) - (rectB.x + rectB.width), rectA.height);                    if(t.width > 0 && t.height > 0) {                        c = new Rectangle(t);                        rectCount++;                    }                } else {                    t.setBounds(rectA.x, rectA.y, rectB.x - rectA.x, rectA.height);                    if(t.width > 0 && t.height > 0) {                        a = new Rectangle(t);                        rectCount++;                    }                    t.setBounds(rectB.x, rectA.y, rectB.width,                                rectB.y - rectA.y);                    if(t.width > 0 && t.height > 0) {                        b = new Rectangle(t);                        rectCount++;                    }                    t.setBounds((rectB.x + rectB.width), rectA.y,                                (rectA.x + rectA.width) - (rectB.x + rectB.width), rectA.height);                    if(t.width > 0 && t.height > 0) {                        c = new Rectangle(t);                        rectCount++;                    }                }            }        }        result = new Rectangle[rectCount];        rectCount = 0;        if(a != null)            result[rectCount++] = a;        if(b != null)            result[rectCount++] = b;        if(c != null)            result[rectCount++] = c;        if(d != null)            result[rectCount++] = d;        return result;    }    /**     * Returns true if the mouse event specifies the left mouse button.     *     * @param anEvent  a MouseEvent object     * @return true if the left mouse button was active     */    public static boolean isLeftMouseButton(MouseEvent anEvent) {         if (is1dot2) {             return ((anEvent.getModifiers() & InputEvent.BUTTON1_MASK) != 0);         }         return ((anEvent.getModifiers() & InputEvent.BUTTON1_MASK) != 0 ||                  // Workaround for Solaris not setting BUTTON1_MASK                  // Not needed in 1.2 where BUTTON1_MASK is correctly set.                  (anEvent.getModifiers() & (InputEvent.BUTTON2_MASK |                                             InputEvent.BUTTON3_MASK)) == 0);    }    /**     * Returns true if the mouse event specifies the middle mouse button.     *     * @param anEvent  a MouseEvent object     * @return true if the middle mouse button was active     */    public static boolean isMiddleMouseButton(MouseEvent anEvent) {        return ((anEvent.getModifiers() & InputEvent.BUTTON2_MASK) == InputEvent.BUTTON2_MASK);    }    /**     * Returns true if the mouse event specifies the right mouse button.     *     * @param anEvent  a MouseEvent object     * @return true if the right mouse button was active     */    public static boolean isRightMouseButton(MouseEvent anEvent) {        return ((anEvent.getModifiers() & InputEvent.BUTTON3_MASK) == InputEvent.BUTTON3_MASK);    }    /*     * Returns whether this is being run on a JDK 1.2 or later VM.     * This is a system-wide, rather than AppContext-wide, state.     */    /*package-private*/ static boolean is1dot2 = true;    static {        try {            // Test if method introduced in 1.2 is available.            Method m = Class.class.getMethod("getProtectionDomain", null);            is1dot2 = (m != null);        } catch (NoSuchMethodException e) {            is1dot2 = false;        }        // Warn if running wrong version of this class for this JDK.                  if (is1dot2) {              System.err.println("warning: running 1.1 version of SwingUtilities");          }            }    /**     * Compute the width of the string using a font with the specified     * "metrics" (sizes).     *     * @param fm   a FontMetrics object to compute with     * @param str  the String to compute     * @return an int containing the string width     */    public static int computeStringWidth(FontMetrics fm,String str) {        if (is1dot2) {            // You can't assume that a string's width is the sum of its            // characters' widths in Java2D -- it may be smaller due to            // kerning, etc.            return fm.stringWidth(str);        }        int w[] = fm.getWidths();        int i,c;        int result = 0;        char ch;        for(i=0,c=str.length() ; i < c ; i++) {            ch = str.charAt(i);            if(ch > 255)                return fm.stringWidth(str);            else                result += w[(int)ch];        }        return result;    }    /**     * Compute and return the location of the icons origin, the     * location of origin of the text baseline, and a possibly clipped     * version of the compound labels string.  Locations are computed     * relative to the viewR rectangle.     * The JComponents orientation (LEADING/TRAILING) will also be taken     * into account and translated into LEFT/RIGHT values accordingly.     */    public static String layoutCompoundLabel(JComponent c,                                             FontMetrics fm,                                             String text,                                             Icon icon,                                             int verticalAlignment,                                             int horizontalAlignment,                                             int verticalTextPosition,                                             int horizontalTextPosition,                                             Rectangle viewR,                                             Rectangle iconR,                                             Rectangle textR,                                             int textIconGap)    {        boolean orientationIsLeftToRight = true;        int     hAlign = horizontalAlignment;        int     hTextPos = horizontalTextPosition;                // Translate LEADING/TRAILING values in horizontalAlignment        // to LEFT/RIGHT values depending on the components orientation        switch (horizontalAlignment) {        case LEADING:             hAlign = (orientationIsLeftToRight) ? LEFT : RIGHT;            break;        case TRAILING:             hAlign = (orientationIsLeftToRight) ? RIGHT : LEFT;            break;        }        // Translate LEADING/TRAILING values in horizontalTextPosition        // to LEFT/RIGHT values depending on the components orientation        switch (horizontalTextPosition) {        case LEADING:             hTextPos = (orientationIsLeftToRight) ? LEFT : RIGHT;            break;        case TRAILING:             hTextPos = (orientationIsLeftToRight) ? RIGHT : LEFT;            break;        }        return layoutCompoundLabelImpl(c,				       fm,				       text,				       icon,				       verticalAlignment,				       hAlign,				       verticalTextPosition,				       hTextPos,				       viewR,				       iconR,				       textR,				       textIconGap);    }    /**     * Compute and return the location of the icons origin, the     * location of origin of the text baseline, and a possibly clipped     * version of the compound labels string.  Locations are computed     * relative to the viewR rectangle.     * This layoutCompoundLabel() does not know how to handle LEADING/TRAILING     * values in horizontalTextPosition (they will default to RIGHT) and in     * horizontalAlignment (they will default to CENTER).     * Use the other version of layoutCompoundLabel() instead.     */    public static String layoutCompoundLabel(        FontMetrics fm,        String text,        Icon icon,        int verticalAlignment,        int horizontalAlignment,        int verticalTextPosition,        int horizontalTextPosition,        Rectangle viewR,        Rectangle iconR,        Rectangle textR,        int textIconGap)    {	return layoutCompoundLabelImpl(null, fm, text, icon, 				       verticalAlignment,				       horizontalAlignment,				       verticalTextPosition,				       horizontalTextPosition,				       viewR, iconR, textR, textIconGap);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -