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

📄 beandemo.java

📁 This is a resource based on j2me embedded,if you dont understand,you can connection with me .
💻 JAVA
字号:
/* * @(#)BeanDemo.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.demos;import java.awt.*;import java.beans.*;import java.io.*;import java.util.EventObject;import basis.DemoButton;import basis.DemoButtonListener;import basis.Bean;import basis.Builder;public class BeanDemo extends Demo implements PropertyChangeListener, VetoableChangeListener {    private Bean bean = new Bean();    private DemoButton textButton = new DemoButton("Text");    private DemoButton colorButton = new DemoButton("Color");    private DemoButton dimensionButton = new DemoButton("Dimension");    private DemoButton saveButton = new DemoButton("save");    private DemoButton loadButton = new DemoButton("load");    private static String[] texts = {        "Pumpkin",        "Broccoli",        "Tomato",        "Peas",        "Lettuce",        "Onion",        "Potato",        "Radish",        "Carrot",        "Cabbage",        "Cauliflower",        "Cucumber",        "Celery",        "Corn"    };    public BeanDemo() {        setLayout(new FlowLayout());        add(textButton);        add(colorButton);        add(dimensionButton);        add(saveButton);        add(loadButton);        bean.addPropertyChangeListener(this);        bean.addVetoableChangeListener(this);        bean.setLocation(20, 20);        add(bean);        ButtonListener listener = new ButtonListener();        textButton.addDemoButtonListener(listener);        colorButton.addDemoButtonListener(listener);        dimensionButton.addDemoButtonListener(listener);        saveButton.addDemoButtonListener(listener);        loadButton.addDemoButtonListener(listener);    }    private String message(PropertyChangeEvent event) {        String name = event.getPropertyName();        Object oldValue = null;        Object newValue = null;        for (int i = 0; i < 2; i++) {            Object object = null;            object = (i == 0) ? event.getOldValue() : event.getNewValue();            if (object instanceof Color) {                Color color = (Color) object;                int r = color.getRed();                int g = color.getGreen();                int b = color.getBlue();                object = "[" + r + "," + g + "," + b + "]";            }            if (object instanceof Dimension) {                Dimension d = (Dimension) object;                object = "[" + d.width + "," + d.height + "]";            }            if (object instanceof Point) {                Point p = (Point) object;                object = "[" + p.x + "," + p.y + "]";            }            if (i == 0) {                oldValue = object;            } else {                newValue = object;            }        }        return name + ":  " + oldValue + " => " + newValue;    }    class ButtonListener implements DemoButtonListener, Serializable {        public void buttonPressed(EventObject event) {            DemoButton button = (DemoButton) event.getSource();            try {                if (button == textButton) {                    int index = (int) (Math.random() * texts.length);                    bean.setText(texts[index]);                    bean.repaint();                }                if (button == colorButton) {                    bean.setColor(new Color((int) (Math.random() * 255 * 255 * 255)));                    bean.repaint();                }                if (button == dimensionButton) {                    Dimension size = getSize();                    int width = 20 + (int) (Math.random() * size.width);                    int height = 5 + (int) (Math.random() * size.height);                    bean.setDimension(new Dimension(width, height));                    bean.repaint();                }                if (button == saveButton) {                    try {                        FileOutputStream fos = new FileOutputStream("Bean.ser");                        ObjectOutputStream oos = new ObjectOutputStream(fos);                        oos.writeObject(bean);                        oos.close();                        setStatus("Bean saved.");                    } catch (IOException ioe) {                        System.err.println("Error saving Bean: " + ioe);                        setStatus("Error saving bean!");                    }                }                if (button == loadButton) {                    try {                        FileInputStream fis = new FileInputStream("Bean.ser");                        ObjectInputStream ois = new ObjectInputStream(fis);                        Bean oldBean = bean;                        bean = (Bean) ois.readObject();                        bean.addPropertyChangeListener(BeanDemo.this);                        bean.addVetoableChangeListener(BeanDemo.this);                        remove(oldBean);                        add(bean);                        BeanDemo.this.repaint();                        ois.close();                        setStatus("Bean loaded.");                    } catch (Exception e) {                        System.err.println("Error loading Bean: " + e);                        setStatus("Error loading bean!");                    }                }            } catch (PropertyVetoException pve) {                PropertyChangeEvent pce = pve.getPropertyChangeEvent();                setStatus(message(pce) + " VETOED!");            }        }    }    public void propertyChange(PropertyChangeEvent event) {        setStatus(message(event));        String name = event.getPropertyName();        if (name.equals("Dimension")) {            validate();        }    }    public void vetoableChange(PropertyChangeEvent event) throws PropertyVetoException {        String name = event.getPropertyName();        if (name.equals("Text")) {            String oldText = (String) event.getOldValue();            String newText = (String) event.getNewValue();            if (newText.startsWith("C")) {                throw new PropertyVetoException("Don't like vegetables beginning with C!", event);            }        }        if (name.equals("Color")) {            Color color = (Color) event.getNewValue();            if (color.getRed() + color.getGreen() + color.getBlue() < 300) {                throw new PropertyVetoException("Too dark!", event);            }        }        if (name.equals("Dimension")) {            Dimension dimension = (Dimension) event.getNewValue();            Dimension size = getSize();            Point point = BeanDemo.this.bean.getLocation();            if (dimension.width < 40 || dimension.height < 10) {                throw new PropertyVetoException("Too small!", event);            }            if (dimension.width > size.width || dimension.height > size.height) {                throw new PropertyVetoException("Too big!", event);            }        }    }}

⌨️ 快捷键说明

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