Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.awt.Color;
import java.awt.Dimension;
import java.lang.reflect.Field;

import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.SpinnerListModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class Main {
    public static void main(String[] argv) throws Exception {
        ColorSpinner spinner = new ColorSpinner(new String[] { "red", "green", "blue" });
        spinner.setValue("blue");
    }
}

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) {
            spinner.addChangeListener(this);
            setPreferredSize(new Dimension(preferredWidth, preferredHeight));
            setColor((String) spinner.getValue());
        }

        public void stateChanged(ChangeEvent evt) {
            JSpinner spinner = (JSpinner) evt.getSource();

            String value = (String) spinner.getValue();

            setColor(value);
        }

        public void setColor(String colorName) {
            try {
                Field field = Class.forName("java.awt.Color").getField(colorName);
                Color color = (Color) field.get(null);
                setBackground(color);
            } catch (Exception e) {
            }
        }
    }
}