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

📄 basicdesktoppaneui.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                }                moving = (key == MOVE) ? true : false;                resizing = (key == RESIZE) ? true : false;                focusOwner = KeyboardFocusManager.                    getCurrentKeyboardFocusManager().getFocusOwner();                if (!SwingUtilities.isDescendingFrom(focusOwner, sourceFrame)) {                    focusOwner = null;                }                sourceFrame.requestFocus();            }            else if (LEFT == key ||                     RIGHT == key ||                     UP == key ||                     DOWN == key ||                     SHRINK_RIGHT == key ||                     SHRINK_LEFT == key ||                     SHRINK_UP == key ||                     SHRINK_DOWN == key) {                JInternalFrame c = dp.getSelectedFrame();                if (sourceFrame == null || c != sourceFrame ||                        KeyboardFocusManager.                            getCurrentKeyboardFocusManager().getFocusOwner() !=                                sourceFrame) {                    return;                }                Insets minOnScreenInsets =                    UIManager.getInsets("Desktop.minOnScreenInsets");                Dimension size = c.getSize();                Dimension minSize = c.getMinimumSize();                int dpWidth = dp.getWidth();                int dpHeight = dp.getHeight();                int delta;                Point loc = c.getLocation();                if (LEFT == key) {                    if (moving) {                        c.setLocation(                                loc.x + size.width - MOVE_RESIZE_INCREMENT <                                    minOnScreenInsets.right ?                                        -size.width + minOnScreenInsets.right :                                        loc.x - MOVE_RESIZE_INCREMENT,                                loc.y);                    } else if (resizing) {                        c.setLocation(loc.x - MOVE_RESIZE_INCREMENT, loc.y);                        c.setSize(size.width + MOVE_RESIZE_INCREMENT,                                size.height);                    }                } else if (RIGHT == key) {                    if (moving) {                        c.setLocation(                                loc.x + MOVE_RESIZE_INCREMENT >                                    dpWidth - minOnScreenInsets.left ?                                        dpWidth - minOnScreenInsets.left :                                        loc.x + MOVE_RESIZE_INCREMENT,                                loc.y);                    } else if (resizing) {                        c.setSize(size.width + MOVE_RESIZE_INCREMENT,                                size.height);                    }                } else if (UP == key) {                    if (moving) {                        c.setLocation(loc.x,                                loc.y + size.height - MOVE_RESIZE_INCREMENT <                                    minOnScreenInsets.bottom ?                                        -size.height +                                            minOnScreenInsets.bottom :                                        loc.y - MOVE_RESIZE_INCREMENT);                    } else if (resizing) {                        c.setLocation(loc.x, loc.y - MOVE_RESIZE_INCREMENT);                        c.setSize(size.width,                                size.height + MOVE_RESIZE_INCREMENT);                    }                } else if (DOWN == key) {                    if (moving) {                        c.setLocation(loc.x,                                loc.y + MOVE_RESIZE_INCREMENT >                                    dpHeight - minOnScreenInsets.top ?                                        dpHeight - minOnScreenInsets.top :                                        loc.y + MOVE_RESIZE_INCREMENT);                    } else if (resizing) {                        c.setSize(size.width,                                size.height + MOVE_RESIZE_INCREMENT);                    }                } else if (SHRINK_LEFT == key && resizing) {                    // Make sure we don't resize less than minimum size.                    if (minSize.width < (size.width - MOVE_RESIZE_INCREMENT)) {                        delta = MOVE_RESIZE_INCREMENT;                    } else {                        delta = size.width - minSize.width;                    }                    // Ensure that we keep the internal frame on the desktop.                    if (loc.x + size.width - delta < minOnScreenInsets.left) {                        delta = loc.x + size.width - minOnScreenInsets.left;                    }                    c.setSize(size.width - delta, size.height);                } else if (SHRINK_RIGHT == key && resizing) {                    // Make sure we don't resize less than minimum size.                    if (minSize.width < (size.width - MOVE_RESIZE_INCREMENT)) {                        delta = MOVE_RESIZE_INCREMENT;                    } else {                        delta = size.width - minSize.width;                    }                    // Ensure that we keep the internal frame on the desktop.                    if (loc.x + delta > dpWidth - minOnScreenInsets.right) {                        delta = (dpWidth - minOnScreenInsets.right) - loc.x;                    }                    c.setLocation(loc.x + delta, loc.y);                    c.setSize(size.width - delta, size.height);                } else if (SHRINK_UP == key && resizing) {                    // Make sure we don't resize less than minimum size.                    if (minSize.height <                            (size.height - MOVE_RESIZE_INCREMENT)) {                        delta = MOVE_RESIZE_INCREMENT;                    } else {                        delta = size.height - minSize.height;                    }                    // Ensure that we keep the internal frame on the desktop.                    if (loc.y + size.height - delta <                            minOnScreenInsets.bottom) {                        delta = loc.y + size.height - minOnScreenInsets.bottom;                    }                    c.setSize(size.width, size.height - delta);                } else if (SHRINK_DOWN == key  && resizing) {                    // Make sure we don't resize less than minimum size.                    if (minSize.height <                            (size.height - MOVE_RESIZE_INCREMENT)) {                        delta = MOVE_RESIZE_INCREMENT;                    } else {                        delta = size.height - minSize.height;                    }                    // Ensure that we keep the internal frame on the desktop.                    if (loc.y + delta > dpHeight - minOnScreenInsets.top) {                        delta = (dpHeight - minOnScreenInsets.top) - loc.y;                    }                    c.setLocation(loc.x, loc.y + delta);                    c.setSize(size.width, size.height - delta);                }            }            else if (NEXT_FRAME == key || PREVIOUS_FRAME == key) {                dp.selectFrame((key == NEXT_FRAME) ? true : false);            }            else if (NAVIGATE_NEXT == key ||                     NAVIGATE_PREVIOUS == key) {                boolean moveForward = true;                if (NAVIGATE_PREVIOUS == key) {                    moveForward = false;                }                Container cycleRoot = dp.getFocusCycleRootAncestor();                if (cycleRoot != null) {                    FocusTraversalPolicy policy =                        cycleRoot.getFocusTraversalPolicy();                    if (policy != null && policy instanceof                            SortingFocusTraversalPolicy) {                        SortingFocusTraversalPolicy sPolicy =                            (SortingFocusTraversalPolicy)policy;                        boolean idc = sPolicy.getImplicitDownCycleTraversal();                        try {                            sPolicy.setImplicitDownCycleTraversal(false);                            if (moveForward) {                                KeyboardFocusManager.                                    getCurrentKeyboardFocusManager().                                        focusNextComponent(dp);                            } else {                                KeyboardFocusManager.                                    getCurrentKeyboardFocusManager().                                    focusPreviousComponent(dp);                            }                        } finally {                            sPolicy.setImplicitDownCycleTraversal(idc);                        }                    }                }            }        }        private void setState(JDesktopPane dp, String state) {            if (state == CLOSE) {                JInternalFrame f = dp.getSelectedFrame();                if (f == null) {                    return;                }                f.doDefaultCloseAction();            } else if (state == MAXIMIZE) {                // maximize the selected frame                JInternalFrame f = dp.getSelectedFrame();                if (f == null) {                    return;                }                if (!f.isMaximum()) {                    if (f.isIcon()) {                        try {                            f.setIcon(false);                            f.setMaximum(true);                        } catch (PropertyVetoException pve) {}                    } else {                        try {                            f.setMaximum(true);                        } catch (PropertyVetoException pve) {                        }                    }                }            } else if (state == MINIMIZE) {                // minimize the selected frame                JInternalFrame f = dp.getSelectedFrame();                if (f == null) {                    return;                }                if (!f.isIcon()) {                    try {                        f.setIcon(true);                    } catch (PropertyVetoException pve) {                    }                }            } else if (state == RESTORE) {                // restore the selected minimized or maximized frame                JInternalFrame f = dp.getSelectedFrame();                if (f == null) {                    return;                }                try {                    if (f.isIcon()) {                        f.setIcon(false);                    } else if (f.isMaximum()) {                        f.setMaximum(false);                    }                    f.setSelected(true);                } catch (PropertyVetoException pve) {                }            }        }        public boolean isEnabled(Object sender) {            if (sender instanceof JDesktopPane) {                JDesktopPane dp = (JDesktopPane)sender;                String action = getName();                if (action == Actions.NEXT_FRAME ||                    action == Actions.PREVIOUS_FRAME) {                    return true;                }                JInternalFrame iFrame = dp.getSelectedFrame();                if (iFrame == null) {                    return false;                } else if (action == Actions.CLOSE) {                    return iFrame.isClosable();                } else if (action == Actions.MINIMIZE) {                    return iFrame.isIconifiable();                } else if (action == Actions.MAXIMIZE) {                    return iFrame.isMaximizable();                }                return true;            }            return false;        }    }    /**     * Handles restoring a minimized or maximized internal frame.     * @since 1.3     */    protected class OpenAction extends AbstractAction {	public void actionPerformed(ActionEvent evt) {            JDesktopPane dp = (JDesktopPane)evt.getSource();            SHARED_ACTION.setState(dp, Actions.RESTORE);	}	public boolean isEnabled() { 	    return true;	}    }    /**     * Handles closing an internal frame.     */    protected class CloseAction extends AbstractAction {	public void actionPerformed(ActionEvent evt) {            JDesktopPane dp = (JDesktopPane)evt.getSource();            SHARED_ACTION.setState(dp, Actions.CLOSE);	}	public boolean isEnabled() {             JInternalFrame iFrame = desktop.getSelectedFrame();            if (iFrame != null) {                return iFrame.isClosable();            }            return false;	}    }    /**     * Handles minimizing an internal frame.     */    protected class MinimizeAction extends AbstractAction {	public void actionPerformed(ActionEvent evt) {            JDesktopPane dp = (JDesktopPane)evt.getSource();            SHARED_ACTION.setState(dp, Actions.MINIMIZE);	}	public boolean isEnabled() {             JInternalFrame iFrame = desktop.getSelectedFrame();            if (iFrame != null) {	        return iFrame.isIconifiable();            }            return false;	}    }    /**     * Handles maximizing an internal frame.     */    protected class MaximizeAction extends AbstractAction {	public void actionPerformed(ActionEvent evt) {            JDesktopPane dp = (JDesktopPane)evt.getSource();            SHARED_ACTION.setState(dp, Actions.MAXIMIZE);	}	public boolean isEnabled() {             JInternalFrame iFrame = desktop.getSelectedFrame();            if (iFrame != null) {	        return iFrame.isMaximizable();            }            return false;        }    }    /**     * Handles navigating to the next internal frame.      */    protected class NavigateAction extends AbstractAction {	public void actionPerformed(ActionEvent evt) {            JDesktopPane dp = (JDesktopPane)evt.getSource();            dp.selectFrame(true);	}	public boolean isEnabled() { 	    return true;	}    }}

⌨️ 快捷键说明

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