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
  • 相关阅读:
    Linux安装cx_Oracle
    LVM分区
    命令行重启远程桌面服务
    常用Linux命令
    自动清理N天前的二进制日志
    MySQL常用操作
    Java里的堆(heap)栈(stack)和方法区(method)
    SpringMVC 八大注解
    Spring Cloud原理详解
    java线程的生命周期及五种基本状态
  • 原文地址:https://www.cnblogs.com/borter/p/9596252.html
Copyright © 2011-2022 走看看