日期:2014-05-20  浏览次数:20688 次

J2ME中关于Lwuit的标签的综合使用
J2ME中关于Lwuit的标签的综合使用

由于我使用的主题对中文支持不好,希望大家下载或编辑一些好的主题。


package com.mopietek;

import java.io.IOException;

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

import com.sun.lwuit.Button;
import com.sun.lwuit.ButtonGroup;
import com.sun.lwuit.CheckBox;
import com.sun.lwuit.ComboBox;
import com.sun.lwuit.Command;
import com.sun.lwuit.Component;
import com.sun.lwuit.Container;
import com.sun.lwuit.Display;
import com.sun.lwuit.Form;
import com.sun.lwuit.Graphics;
import com.sun.lwuit.Image;
import com.sun.lwuit.Label;
import com.sun.lwuit.List;
import com.sun.lwuit.Painter;
import com.sun.lwuit.RadioButton;
import com.sun.lwuit.TabbedPane;
import com.sun.lwuit.TextArea;
import com.sun.lwuit.TextField;
import com.sun.lwuit.animations.CommonTransitions;
import com.sun.lwuit.animations.Transition;
import com.sun.lwuit.animations.Transition3D;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;
import com.sun.lwuit.geom.Dimension;
import com.sun.lwuit.geom.Rectangle;
import com.sun.lwuit.layouts.BorderLayout;
import com.sun.lwuit.layouts.BoxLayout;
import com.sun.lwuit.layouts.GridLayout;
import com.sun.lwuit.plaf.Style;
import com.sun.lwuit.plaf.UIManager;
import com.sun.lwuit.table.Table;
import com.sun.lwuit.util.Resources;

public class ComponentMIDlet extends MIDlet implements ActionListener{

	public Form mainForm;
	public List mexampleList;
	public Command mBackCommand;
	
	
	protected void startApp() throws MIDletStateChangeException {
		
		if(mainForm == null){
			Display.init(this);
		try {
			Resources res = Resources.open("/javaTheme.res");
			UIManager.getInstance().setThemeProps(res.getTheme("javaTheme"));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
			
		Form f = new Form("测试组件");
		mainForm = f;
		f.setLayout(new BorderLayout());
		List exampleList = new List();
		mexampleList = exampleList;
		exampleList.addItem("Labels");
		exampleList.addItem("Buttons");
		exampleList.addItem("More Buttons");
		exampleList.addItem("List and ComboBox");
		exampleList.addItem("Text");
		exampleList.addItem("Layouts");
		exampleList.addItem("Events");
		exampleList.addItem("Style");
		exampleList.addItem("TabbedPane");
		exampleList.addItem("Painter");
		exampleList.addItem("Exit");
		exampleList.addActionListener(this);
		
		f.addComponent(BorderLayout.CENTER,exampleList);
		
		mBackCommand = new Command("返回");

		}
		
		mainForm.show();
	}
	
	protected void destroyApp(boolean unconditional)
			throws MIDletStateChangeException {
		// TODO Auto-generated method stub
		
	}

	protected void pauseApp() {
		// TODO Auto-generated method stub
		
	}

	

	public void actionPerformed(ActionEvent ae) {
		
		if(ae.getSource() == mexampleList){
			//选中的List列表
			String selection = (String)mexampleList.getSelectedItem();
			if(selection.equals("Labels")){
				showLabels();
			}
			else if(selection.equals("Buttons")){
				showButtons();
			}
			else if(selection.equals("More Buttons")){
				showMoreButtons();
			}
			else if(selection.equals("List and ComboBox")){
				showListAndComboBox();
			}
			else if(selection.equals("Text")){
				showText();
			}
			else if(selection.equals("Layouts")){
				showLayouts();
			}
			else if(selection.equals("Events")){
				showEvents();
			}
			else if(selection.equals("Style")){
				showStyle();
			}
			else if(selection.equals("TabbedPane")){
				showTabbedPane();
			}
			else if(selection.equals("Painter")){
				showPainter();
			}
			else if(selection.equals("Exit")){
				try {
					destroyApp(true);
				} catch (MIDletStateChangeException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		        notifyDestroyed();
			}
			
		}
		
		if(ae.getCommand() == mBackCommand){
			mainForm.show();
		}
		
	}
	
	public void showLabels(){
		
		Form f = new Form("测试Label");
		f.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
		Label label1 = new Label("label1");
		Image image = null;
		try {
			 image = Image.createImage("/baldy.png");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Label label2 = new Label(image);
		Label label3 = new Label(image);
		label3.setText("label3");
		label3.setTextPosition(Component.BOTTOM);

		f.addComponent(label1);
		f.addComponent(label2);
		f.addComponent(label3);
		f.addCommand(mBackCommand);
		f.setCommandListener(this);
		f.show();
	}
	
	public void showButtons(){
		
		Form f = new Form("测试Button");
		
		try {
			 Button button1 = new Button("ClickMe");
			 button1.setTextPosition(Component.BOTTOM);
			 Image	image = Image.createImage("/baldy.png");
			 Button button2 = new Button(image);
			 Button button3 = new Button("Pic",image);
			 button3.setTextPosition(Component.BOTTOM);
			 f.addComponent(button1);
			 f.addComponent(button2);
			 f.addComponent(button3);
				
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		f.addCommand(mBackCommand);
		f.setCommandListener(this);
		f.show();
	}
	
	public void showMoreButtons(){
		
		Form f = new Form("MoreButtons");
		
		ButtonGroup buttonGroup = new ButtonGroup();
		
		RadioButton rb1 = new RadioButton("Mike");
		RadioButton rb2 = new RadioButton("Coffer");
		RadioButton rb3 = new RadioButton("Tea");
		rb1.addActionListener(this);
		rb2.addActionListener(this);
		rb3.addActionListener(this);
		
		buttonGroup.add(rb1);
		buttonGroup.add(rb2);
		buttonGroup.add(rb3);
		
		f.addComponent(rb1);
		f.addComponent(rb2);
		f.addComponent(rb3);
		
		
		CheckBox checkBox1 = new CheckBox("checkBox1");
		CheckBox checkBox2 = new CheckBox("checkBox2");
		CheckBox checkBox3 = new CheckBox("checkBox3");
		CheckBox checkBox4 = new CheckBox("checkBox4");
		CheckBox checkBox5 = new CheckBox("checkBox5");
		CheckBox checkBox6 = new CheckBox("checkBox6");
		
		f.addComponent(checkBox1);
		f.addComponent(checkBox2);
		f.addComponent(checkBox3);
		f.addComponent(checkBox4);
		f.addComponent(checkBox5);
		f.addComponent(checkBox6);
		
		f.addCommand(mBackCommand);
		f.setCommandListener(this);
		f.show();
		
		
	}
	
	public void showListAndComboBox(){
		
		Form f = new Form("List and ComboBox");
		
		List list = new List();
		list.addItem("red");
		list.addItem("green");
		list.addItem("yellow");
		list.addItem("blue");
		list.addItem("white");
		
		ComboBox comboBox = new ComboBox(list.getModel());
		f.addComponent(list);
		f.addComponent(comboBox);
		
		f.addCommand(mBackCommand);
		f.setCommandListener(this);
		f.show();
		
		
	}
	
	public void showText(){
		
		
		
		Form f = new Form("测试 Text组件");
		TextField textField = new TextField("this is write content in textField");
		
		TextArea textArea = new TextArea("this is write content in TextArea!",5,20);
		textArea.setMaxSize(512);
		
		f.addComponent(textField);
		f.addComponent(textArea);
		
		f.addCommand(mBackCommand);
		f.setCommandListener(this);
		f.show();
		
		
	}
	
	public void showLayouts(){
		
		Form f = new Form("Text Layouts");
		f.setLayout(new BorderLayout());
		
		
		try{
			Image image = Image.createImage("/baldy.png");
			
			Label label = new Label(image);
			label.setAlignment(Component.CENTER);
            label.setText("Label in Layouts");
            label.setTextPosition(Component.BOTTOM);
            
//          Container buttonContainer = new Container(new BoxLayout(BoxLayout.X_AXIS));
            Container buttonContainer = new Container();
            GridLayout exampleLayout = new GridLayout(3,2);
            buttonContainer.setLayout(exampleLayout);
            buttonContainer.addComponent(new Button("Add"));
            buttonContainer.addComponent(new Button("Remove"));
            buttonContainer.addComponent(new Button("Edit"));
            buttonContainer.addComponent(new Button("Send"));
            buttonContainer.addComponent(new Button("Receive"));
            buttonContainer.addComponent(new Button("Exit"));
            
            f.addComponent(BorderLayout.NORTH,label);
            f.addComponent(BorderLayout.CENTER,buttonContainer);
            
            f.addCommand(mBackCommand);
            f.setCommandListener(this);
            f.show();
            
            
			
		}catch(IOException e){
			e.printStackTrace();
		}
		
	}
	
	public void showEvents(){
	
		Form f = new Form("Test Events");
		f.setLayout(new BorderLayout());
		
	    final Button button = new Button("Click Me");
		button.addActionListener(new ActionListener(){
             int i = 0;
			public void actionPerformed(ActionEvent av) {
                     i++;
                     button.setText("NO."+i+"Clicked");
			}
			
		});
		
		f.addComponent(BorderLayout.NORTH,button);
		f.addCommand(mBackCommand);
		f.setCommandListener(this);
		f.show();
		
	}
	
	public void showStyle(){
		
		Form f = new Form("Style");
		f.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
		
		Label label1 = new Label("No using Style");
		//设置标签为透明色
		Label label2 = new Label("Transparent");
		label2.getStyle().setBgTransparency(0);
		//改变标签背景色
		Label label3 = new Label("Change the BackGroud Color and Font Color");
		Style style = label3.getStyle();
		style.setBgColor(0xaa00ff);
		//字体颜色为白色
		style.setFgColor(0xffffff);
		//设置margin的大小
		Label label4 = new Label("Margin around is 10px");
		label4.getStyle().setMargin(10,10,10, 10);
		//设置padding的大小
		Label label5 = new Label("Padding around is 20px");
		label5.getStyle().setPadding(20,20,20,20);
		
		f.addComponent(label1);
		f.addComponent(label2);
		f.addComponent(label3);
		f.addComponent(label4);
		f.addComponent(label5);
		
		f.addCommand(mBackCommand);
		f.setCommandListener(this);
		f.show();
		
		
		
		
		
		
		
		
		
	}
	
	public void showTabbedPane(){
		
		Form f = new Form("TabbedPane");
		f.setLayout(new BorderLayout());
		
		TabbedPane tabbedPane = new TabbedPane(TabbedPane.TOP);
		tabbedPane.addTab("tab1", new Label("this is label One"));
		tabbedPane.addTab("Tab2", new Label("this is label Two"));
		f.addComponent(BorderLayout.NORTH, tabbedPane);
		f.addCommand(mBackCommand);
		f.setCommandListener(this);
		f.show();
	}
	
	public void showPainter(){
		
		Form f = new Form("Painter");

	    try {
	      Label label = new Label("Baldy");

	      Image image = Image.createImage("/baldy.png");
	      Label pictureLabel = new Label(image);

	      Label bottomText = new Label(image);
	      bottomText.setText("Baldassare");
	      bottomText.setTextPosition(Component.BOTTOM);

	      f.addComponent(label);
	      f.addComponent(pictureLabel);
	      f.addComponent(bottomText);
	    } catch (IOException ioe) {
	      System.out.println(ioe);
	    }
	    
	    final int bg = f.getStyle().getBgColor();
	    final int fg = f.getStyle().getFgColor();
	    
	    f.getStyle().setBgPainter(new Painter() {
	        public void paint(Graphics g, Rectangle rect) {
	            int s = 12;
	            
	            Dimension size = rect.getSize();
	            int rx = rect.getX();
	            int ry = rect.getY();
	            int rw = size.getWidth();
	            int rh = size.getHeight();
	            
	            g.setColor(bg);
	            g.fillRect(rx, ry, rw, rh);
	            //画棱形
	            g.setColor(fg);
	            for (int y = 0; y < rh; y += 2 * s) {
	              for (int x = 0; x < rw; x += s) {
	                g.fillTriangle(rx + x, ry + y + s, rx + x + s / 2, ry + y,        rx + x + s, ry + y + s);
	                g.fillTriangle(rx + x, ry + y + s, rx + x + s / 2, ry + y + 2 *s, rx + x + s, ry + y + s);
	              }
	            }
	        }
	    });

	    f.addCommand(mBackCommand);
	    f.setCommandListener(this);
	    
	    //增加3D特效                                                                //时间  //true为逆时针翻转(向右翻转) false为顺时针翻转(向左翻转)
	    Transition t = Transition3D.createCube(400, true);
	    if (t == null)   //当t为null时,通过 CommonTransitions创建特效 //第一参数为type , 第二参数 为翻转, 第三参数时间
	      t = CommonTransitions.createSlide(CommonTransitions.SLIDE_VERTICAL, true, 700);
	    f.setTransitionInAnimator(t);
	    
	    t = Transition3D.createCube(400, false);
	    if (t == null)                    // type是"SLIDE_VERTICAL"为上下切换,SLIDE_HORIZONTAL为左右切换
	      t = CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL, false, 700);
	    f.setTransitionOutAnimator(t);

	    f.show();
	}

}