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

📄 moreinfopanel.java

📁 《SWING HACKS》源码 作者: Joshua Marinacci,Chris Adamson 著 徐晔 译 出版: 2007年2月
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MoreInfoPanel extends JPanel {    public Component topComponent;    protected SpinWidget spinWidget;    public Component bottomComponent;    public static final int SPIN_WIDGET_HEIGHT = 14;    public MoreInfoPanel (Component tc, Component mic) {        topComponent = tc;        spinWidget = new SpinWidget();        bottomComponent = mic;        doMyLayout();    }    protected void doMyLayout() {        setLayout (new BoxLayout (this, BoxLayout.Y_AXIS));        add (topComponent);        add (spinWidget);        add (bottomComponent);        resetBottomVisibility();    }    protected void resetBottomVisibility() {        if ((bottomComponent == null) ||            (spinWidget == null))            return;        bottomComponent.setVisible (spinWidget.isOpen());        revalidate();        if (isShowing()) {            Container ancestor = getTopLevelAncestor();            if ((ancestor != null) && (ancestor instanceof Window))                ((Window) ancestor).pack();            repaint();        }    }    public void showBottom (boolean b) {        spinWidget.setOpen (b);    }    public boolean isBottomShowing () {        return spinWidget.isOpen();    }        public class SpinWidget extends JPanel {        boolean open;        Dimension mySize = new Dimension (SPIN_WIDGET_HEIGHT,                                          SPIN_WIDGET_HEIGHT);        final int HALF_HEIGHT = SPIN_WIDGET_HEIGHT / 2;        int[] openXPoints =            { 1, HALF_HEIGHT, SPIN_WIDGET_HEIGHT-1};        int[] openYPoints =            { HALF_HEIGHT, SPIN_WIDGET_HEIGHT-1, HALF_HEIGHT};        int[] closedXPoints =            { 1, 1, HALF_HEIGHT};        int[] closedYPoints =            { 1, SPIN_WIDGET_HEIGHT-1, HALF_HEIGHT };        Polygon openTriangle =             new Polygon (openXPoints, openYPoints, 3);        Polygon closedTriangle =             new Polygon (closedXPoints, closedYPoints, 3);        public SpinWidget() {            setOpen (false);            addMouseListener (new MouseAdapter() {                    public void mouseClicked (MouseEvent e) {                        handleClick();                    }                });        }                public void handleClick() {            setOpen (! isOpen());        }        public boolean isOpen() {            return open;        }        public void setOpen (boolean o) {            open = o;            resetBottomVisibility();        }        public Dimension getMinimumSize() { return mySize; }        public Dimension getPreferredSize() { return mySize; }        // don't override update(), get the default clear        public void paint (Graphics g) {            if (isOpen())                g.fillPolygon (openTriangle);            else                g.fillPolygon (closedTriangle);        }    }}

⌨️ 快捷键说明

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