zoukankan      html  css  js  c++  java
  • e791. 为JSpinner定制编辑器

    This example replaces the default editor (a JFormattedTextField) in a spinner component with a custom editor. The custom editor is simply a panel that displays a color. The name of the color to display is stored in a SpinnerListModel.

        // Create a color spinner
        ColorSpinner spinner = new ColorSpinner(
            new String[]{"red", "green", "blue"});
        
        // Change the selected color
        spinner.setValue("blue");
        
        public class ColorSpinner extends JSpinner {
            public ColorSpinner(String[] colorNames) {
                super();
                setModel(new SpinnerListModel(colorNames));
                setEditor(new Editor(this));
            }
        
            public class Editor extends JPanel implements ChangeListener {
                int preferredWidth = 30;
                int preferredHeight = 16;
        
                Editor(JSpinner spinner) {
                    // Add the listener
                    spinner.addChangeListener(this);
        
                    // Set the preferred size
                    setPreferredSize(new Dimension(preferredWidth, preferredHeight));
        
                    // Display the current color
                    setColor((String)spinner.getValue());
                }
        
                // Handles changes to the value stored in the model
                public void stateChanged(ChangeEvent evt) {
                    JSpinner spinner = (JSpinner)evt.getSource();
        
                    // Get the new value
                    String value = (String)spinner.getValue();
        
                    // Update the displayed color
                    setColor(value);
                }
        
                // Updates the displayed color to 'colorName' which must be one
                // of the predefined colors in java.awt.Color.
                public void setColor(String colorName) {
                    try {
                        // Find the field and value of colorName
                        Field field = Class.forName("java.awt.Color").getField(colorName);
                        Color color = (Color)field.get(null);
        
                        // Display the color
                        setBackground(color);
                    } catch (Exception e) {
                    }
                }
            }
    
    Related Examples
  • 相关阅读:
    鲜牛奶与纯牛奶的区别 All In One
    Rough Notation Animation All In One
    java基础编程String及相关
    JDBC1
    java基础数据类型
    java基础编程
    JDBC3
    MYSQL1
    JDBC2
    JSP和Servlet的相同点和不同点,他们之间的联系
  • 原文地址:https://www.cnblogs.com/borter/p/9596252.html
Copyright © 2011-2022 走看看