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

📄 colorproperty.java

📁 JAVA 数学程序库 提供常规的数值计算程序包
💻 JAVA
字号:
package jmathlib.core.graphics.properties;

import java.awt.Color;
import java.text.DecimalFormat;
import jmathlib.core.graphics.*;

public class ColorProperty extends Property
{
	private Color color;

	public ColorProperty(PropertySet parent, String name, Color color)
	{
		super(parent, name);
		this.color = color;
	}

	public void set(Object value) throws PropertyException
	{
		Color c = null;

		if (value instanceof Color)
			c = (Color)value;
		else if (value instanceof String)
			c = decodeColor((String)value);
		else
		{
			try
			{
				double[] cv = (double[])value;
				if (cv.length == 3)
					c = new Color((float)cv[0], (float)cv[1], (float)cv[2]);
			}
			catch (ClassCastException e) { }
			if (c == null)
				throw new PropertyException("invalid color value - " + value.toString());
		}
		setColorInternal(c);
	}

	public Object get()
	{
		return getColor();
	}

	public Color getColor()
	{
		return color;
	}

	public void setColor(Color c)
	{
		setColorInternal(c);
	}

	public void setColor(String s)
	{
		try { setColor(decodeColor(s)); }
		catch (PropertyException e) { }
	}

	public void setColor(char c)
	{
		setColor(new String(new char[] {c}));
	}

	private void setColorInternal(Color c)
	{
		color = c;
		valueChanged();
	}

	private Color decodeColor(String name) throws PropertyException
	{
		if (name.length() == 1)
        {
			switch (name.charAt(0))
			{
			case 'r': return Color.red;
			case 'c': return Color.cyan;
			case 'y': return Color.yellow;
			case 'g': return Color.green;
			case 'm': return Color.magenta;
			case 'k': return Color.black;
			case 'b': return Color.blue;
			case 'w': return Color.white;
			}
        }

        throw new PropertyException("invalid color name - " + name);
	}

	public String toString()
	{
		DecimalFormat fmt = new DecimalFormat("0.0000 ");
		
        return (
			"[ " +
			fmt.format(color.getRed()/255.0) +
			fmt.format(color.getGreen()/255.0) +
			fmt.format(color.getBlue()/255.0) +
			"]");
	}
}

⌨️ 快捷键说明

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