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

📄 builder.java

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 JAVA
字号:
/* * @(#)Builder.java	1.5 06/10/10 * * Copyright  1990-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation.  *  * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt).  *  * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA  *  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions.  */package basis;import java.awt.*;import java.awt.event.*;import java.lang.reflect.*;import java.util.ArrayList;import java.util.EventObject;import basis.demos.*;public class Builder extends Container {    public static final Color SUN_BLUE = new Color(89, 79, 191);    public static final Color SUN_YELLOW = new Color(251, 226, 73);    public static final Color SUN_RED = new Color(209, 33, 36);    public static final Color SUN_LIGHTBLUE = new Color(204, 204, 255);    private ArrayList demos;    private Container demoContainer = new Container();    private CardLayout cardLayout = new CardLayout();    private Status status;    public Builder(ArrayList demos) {        this.demos = demos;    }    public void build(Container container) throws Exception {        container.setBackground(Color.white);        container.setLayout(new BorderLayout());        container.add(this, BorderLayout.CENTER);        status = new Status();        if (demos.size() > 1) {            setLayout(new BorderLayout());            demoContainer.setLayout(cardLayout);            Container buttonContainer = new Container();            add(buttonContainer, BorderLayout.NORTH);            add(demoContainer, BorderLayout.CENTER);            add(status, BorderLayout.SOUTH);            buttonContainer.setLayout(new GridLayout(1, demos.size()));            DemoButtonListener listener = new DemoButtonListener() {                public void buttonPressed(EventObject e) {                    DemoButton b = (DemoButton) e.getSource();                    showDemo(b.getLabel());                }            };            for (int i = 0; i < demos.size(); i++) {                Class clazz = Class.forName((String) demos.get(i));                Component component = (Component) clazz.newInstance();                String label = (String) demos.get(i);                label = label.substring(label.lastIndexOf(".") + 1, label.lastIndexOf("Demo"));                if (i == 0) {                    setStatus(label);                }                demoContainer.add(label, component);                DemoButton b = new DemoButton(label);                buttonContainer.add(b);                b.addDemoButtonListener(listener);            }        } else {            String demoName = (String) demos.get(0);            Class clazz = Class.forName(demoName);            Demo demo = (Demo) clazz.newInstance();            setLayout(new BorderLayout());            add(demo, BorderLayout.CENTER);            add(status, BorderLayout.SOUTH);            String label = demoName;            label = label.substring(label.lastIndexOf(".") + 1, label.lastIndexOf("Demo"));            setStatus(label);        }    }    public void showDemo(String name) {        cardLayout.show(demoContainer, name);        setStatus(name);    }    public void setStatus(String text) {        if (status == null) {            return;        }        if (text.equals(getStatus())) {            return;        }        status.setText(text);        status.repaint();    }    public String getStatus() {        if (status == null) {            return null;        }        return status.getText();    }    class Status extends Component {        private String text = "";        private Font font = new Font("sanserif", Font.BOLD, 12);        private Dimension preferredSize;        public Status() {            setBackground(SUN_YELLOW);            setForeground(SUN_RED);        }        public void setText(String text) {            this.text = text;            if (status.isShowing()) {                Graphics g = getGraphics();                FontMetrics fm = g.getFontMetrics(font);                int fw = fm.stringWidth(text);                int fh = fm.getHeight();                preferredSize = new Dimension(fw + 4, fh + 4);            }        }        public String getText() {            return text;        }        public Dimension getPreferredSize() {            if (preferredSize == null) {                Graphics g = getGraphics();                FontMetrics fm = g.getFontMetrics(font);                int fw = fm.stringWidth(text);                int fh = fm.getHeight();                preferredSize = new Dimension(fw + 4, fh + 4);            }            return preferredSize;        }        public Dimension getMinimumSize() {            return getPreferredSize();        }        public Dimension getMaximumSize() {            return new Dimension(Integer.MAX_VALUE, Integer.MAX_VALUE);        }        public void paint(Graphics g) {            Color background = getBackground();            Color foreground = getForeground();            Dimension size = getSize();            g.setColor(background);            g.fillRect(0, 0, size.width, size.height);            g.setColor(foreground);            g.setFont(font);            FontMetrics fm = g.getFontMetrics(font);            int w = fm.stringWidth(text);            g.drawString(text, (size.width - w) / 2, 2 * size.height / 3);        }     }}

⌨️ 快捷键说明

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