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();
}
}