JAVA枚举类型实用代码示例。

刚学枚举类型是总觉的枚举类型似乎多此一举,一直在想枚举类型有什么意义。
看到网络上很多枚举类型的例子,觉的很适合颜色调配这个案例,感觉枚举最大的意义是可以像对象一样操作。
自己结合枚举的优点写了一个实用的例子,代码会优雅和精简了许多,供参考。
 
package utils;
public enum LxzColor{
	Red(255,0,0),
	Green(0,255,0),
	Blue(0,0,255),
	Black("#000000"),
	Purple("#6F00D2"),
    Yello("#F9F900"),
    White("#FFFFFF");
	
	//模式RGB色,HTML色
	enum ColorAdapter{
		All{
			public String toString(LxzColor clr) {
				return "["+"htmlcode="+clr.htmlcode+"  RGB={"+clr.r+","+clr.g+","+clr.b+","+"}"+"]";		
			   }
		},
		RGB{
			public String toString(LxzColor clr) {
				 return "["+clr.r+","+clr.g+","+clr.b+"]";
			   }
		},
		HTML{
			public String toString(LxzColor clr) {
				 return clr.htmlcode;
			   }
		};
		
		public String toString(LxzColor clr) {
			return "["+"htmlcode="+clr.htmlcode+"  RGB={"+clr.r+","+clr.g+","+clr.b+","+"}"+"]";
	   }
	}

	
	String htmlcode;
	int r;
	int g;
	int b;
	private LxzColor(String htmlcolor)
	{
		htmlcode=htmlcolor;
		r=Integer.valueOf(""+htmlcolor.charAt(1)+htmlcolor.charAt(2),16);
		g=Integer.valueOf(""+htmlcolor.charAt(3)+htmlcolor.charAt(4),16);
		b=Integer.valueOf(""+htmlcolor.charAt(5)+htmlcolor.charAt(6),16);

	}
	private LxzColor(int r,int g,int b)
	{
		this.r=r;
		this.g=g;
		this.b=b;
		String $r=String.valueOf(Integer.toHexString(r));
		$r=$r.length()==1?0+$r:$r;
		String $g=String.valueOf(Integer.toHexString(g));
		$g=$g.length()==1?0+$g:$g;
		String $b=String.valueOf(Integer.toHexString(b));
		$b=$b.length()==1?0+$b:$b;
		htmlcode=("#"+$r.toUpperCase()+$g.toUpperCase()+$b.toUpperCase());	

	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return super.toString();
	}
	
	public String toString(ColorAdapter type) {
		// TODO Auto-generated method stub
		return type.toString(this);
	}
}
 
package utils;

import utils.LxzColor.ColorAdapter;


public class dotest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(LxzColor.values());
		
		//打印
		System.out.println(LxzColor.Black);
		System.out.println(LxzColor.valueOf("Red"));
		System.out.println(LxzColor.valueOf(LxzColor.Blue.toString()));
		System.out.println("----------------------");
		
		for(int i=0;i<LxzColor.values().length;i++)
		{
			System.out.println("序列数"+LxzColor.values()[i].ordinal());
			System.out.println(LxzColor.values()[i]);
			System.out.println(LxzColor.values()[i].toString(ColorAdapter.RGB));
			System.out.println(LxzColor.values()[i].toString(ColorAdapter.HTML));
			System.out.println(LxzColor.values()[i].toString());
			System.out.println("----------------------");
		}	
	}
}

 

 

输出结果

[Lutils.LxzColor;@61de33
Black
Red
Blue
----------------------
序列数0
Red
[255,0,0]
#ff0000
Red
----------------------
序列数1
Green
[0,255,0]
#00ff00
Green
----------------------
序列数2
Blue
[0,0,255]
#0000ff
Blue
----------------------
序列数3
Black
[0,0,0]
#000000
Black
----------------------
序列数4
Purple
[111,0,210]
#6F00D2
Purple
----------------------
序列数5
Yello
[249,249,0]
#F9F900
Yello
----------------------
序列数6
White
[255,255,255]
#FFFFFF
White
----------------------

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import javax.microedition.lcdui.Command; import javax.microedition.lcdui.CommandListener; import javax.microedition.lcdui.Displayable; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.Image; import javax.microedition.lcdui.ImageItem; import javax.microedition.lcdui.Item; import javax.microedition.lcdui.TextField; public class PhoneAdd extends Form { private UIController controller; private Command BACK_COMMAND; private Command SAVE_COMMAND; private TextField nameField; private TextField phoneField; private TextField QQField; private TextField sexField; private TextField ageField; // private ImageItem iconQQ; // private Image icon; public PhoneAdd(String title, UIController control) { super(title); controller = control; this.setCommandListener(new PhoneAddListener()); BACK_COMMAND = new Command("返回", Command.BACK, 1); SAVE_COMMAND = new Command("确认", Command.OK, 2); this.addCommand(BACK_COMMAND); this.addCommand(SAVE_COMMAND); /* try{ icon=Image.createImage("/icon/7.png"); }catch(java.io.IOException e){ icon=null; System.out.println("图片导入异常"); } */ nameField = new TextField("名字", "", 16, TextField.ANY); phoneField = new TextField("电话", "", 16, TextField.PHONENUMBER); QQField = new TextField("QQ", "", 11, TextField.NUMERIC); sexField = new TextField("性别", "", 2, TextField.ANY); ageField = new TextField("年龄","",3,TextField.NUMERIC); // iconQQ=new ImageItem("",icon,Item.LAYOUT_LEFT,"图片无法显示"); this.append(nameField); this.append(phoneField); this.append(sexField); // this.append(iconQQ); this.append(QQField); this.append(ageField); } public void clear() { nameField.setString(""); phoneField.setString(""); sexField.setString(""); QQField.setString(""); ageField.setString(""); } private class PhoneAddListener implements CommandListener { public void commandAction(Command command, Displayable disp) { if (command == BACK_COMMAND) { controller.handleEvent(UIController.EventID.EVENT_VIEW_BACK, null); } else if (command == SAVE_COMMAND) { String name = nameField.getString(); String phone = phoneField.getString(); String QQ = QQField.getString(); String sex = sexField.getString(); String age= ageField.getString(); if ((name == null || name.equals("")) || (phone == null || phone.equals(""))) { return; } Object[] args = { name, phone, QQ, sex ,age}; controller.handleEvent(UIController.EventID.EVENT_NEW_SAVE, args); } } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值