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

📄 spinnerdemo4.java

📁 java tutorial.sun公司官方出品。java入门书籍。最新版
💻 JAVA
字号:
/* * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * *   - Redistributions of source code must retain the above copyright *     notice, this list of conditions and the following disclaimer. * *   - Redistributions in binary form must reproduce the above copyright *     notice, this list of conditions and the following disclaimer in the *     documentation and/or other materials provided with the distribution. * *   - Neither the name of Sun Microsystems nor the names of its *     contributors may be used to endorse or promote products derived *     from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package components;/* * This application  demonstrates using spinners. * Other files required: *   SpringUtilities.java */import javax.swing.*;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;public class SpinnerDemo4 extends JPanel {    public SpinnerDemo4() {        super(new SpringLayout());        String[] labels = {"Shade of Gray: "};        int numPairs = labels.length;        JSpinner spinner = addLabeledSpinner(this,                                             labels[0],                                             new GrayModel(170));        spinner.setEditor(new GrayEditor(spinner));        //Lay out the panel.        SpringUtilities.makeCompactGrid(this,                                        numPairs, 2, //rows, cols                                        10, 10,        //initX, initY                                        6, 10);       //xPad, yPad    }    static protected JSpinner addLabeledSpinner(Container c,                                                String label,                                                SpinnerModel model) {        JLabel l = new JLabel(label);        c.add(l);        JSpinner spinner = new JSpinner(model);        l.setLabelFor(spinner);        c.add(spinner);        return spinner;    }    /**     * Create the GUI and show it.  For thread safety,     * this method should be invoked from the     * event dispatch thread.     */    private static void createAndShowGUI() {        //Create and set up the window.        JFrame frame = new JFrame("SpinnerDemo4");        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        //Create and set up the content pane.        JComponent newContentPane = new SpinnerDemo4();        newContentPane.setOpaque(true); //content panes must be opaque        frame.setContentPane(newContentPane);        //Display the window.        frame.pack();        frame.setVisible(true);    }    public static void main(String[] args) {        //Schedule a job for the event dispatch thread:        //creating and showing this application's GUI.        SwingUtilities.invokeLater(new Runnable() {            public void run() {                //Turn off metal's use of bold fonts	        UIManager.put("swing.boldMetal", Boolean.FALSE);		createAndShowGUI();            }        });    }    class GrayModel extends SpinnerNumberModel {        public GrayModel(int value) {            super(value, 0, 255, 5);        }        public int getIntValue() {            Integer myValue = (Integer)getValue();            return myValue.intValue();        }        public Color getColor() {            int intValue = getIntValue();            return new Color(intValue, intValue, intValue);        }    }    class GrayEditor extends JLabel                     implements ChangeListener {        public GrayEditor(JSpinner spinner) {            setOpaque(true);            //Get info from the model.            GrayModel myModel = (GrayModel)(spinner.getModel());            setBackground(myModel.getColor());            spinner.addChangeListener(this);            //Set tool tip text.            updateToolTipText(spinner);            //Set size info.            Dimension size = new Dimension(60, 15);            setMinimumSize(size);            setPreferredSize(size);        }        protected void updateToolTipText(JSpinner spinner) {            String toolTipText = spinner.getToolTipText();            if (toolTipText != null) {                //JSpinner has tool tip text.  Use it.                if (!toolTipText.equals(getToolTipText())) {                    setToolTipText(toolTipText);                }            } else {                //Define our own tool tip text.                GrayModel myModel = (GrayModel)(spinner.getModel());                int rgb = myModel.getIntValue();                setToolTipText("(" + rgb + "," + rgb + "," + rgb + ")");            }        }        public void stateChanged(ChangeEvent e) {            JSpinner mySpinner = (JSpinner)(e.getSource());            GrayModel myModel = (GrayModel)(mySpinner.getModel());            setBackground(myModel.getColor());            updateToolTipText(mySpinner);        }    }}

⌨️ 快捷键说明

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