|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。条记明天买了2.5磅咖啡豆,星巴克的。有点点贵,用了599年夜洋,呵呵,偶然奢靡一下也不为过嘛。方才磨了一杯咖啡,点上烟,呵呵,持续入手下手j2me的进修过程。虽然说明天礼拜六,但是估量明天看不了几,今天要往公司加班,以是明天仍是要早点歇息。。。想一想前几个礼拜,soho的时分天天早晨就是我的事情工夫,日间嘛。。嘿嘿,睡觉。。。那真是幸运呀。。。好日子不再咯。。。
呵呵,TextBox,仿佛看名字就晓得干甚么的了,HTML内里的输出框。呵呵,感到应当差未几。写一个(和TextBox有不异利用办法的另有一个对象:TextField,呵呵,感到这个就是HTML内里的TextArea罢了^_^)
测试程序先:
packagecom.graph;
/**
*@authorYouLi
*
*CopyRight(C)2005www.iguess.com.cn
*/
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;
publicclassTextBoxTestextendsMIDletimplementsCommandListener{
privateDisplaydisplay;
Commandcommit;
publicTextBoxTest(){
display=Display.getDisplay(this);
//TODO主动天生机关函数存根
}
protectedvoidstartApp()throwsMIDletStateChangeException{
//TODO主动天生办法存根
commit=newCommand("提交",Command.SCREEN,1);
TextBoxtb=newTextBox("输出框","default",12,TextField.ANY);
tb.addCommand(commit);
tb.setCommandListener(this);
display.setCurrent(tb);
}
protectedvoidpauseApp(){
//TODO主动天生办法存根
}
protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{
//TODO主动天生办法存根
}
publicvoidcommandAction(Commandc,Displayables){
TextBoxtmp=(TextBox)s;
System.out.println(tmp.getString());
}
}
这个程序的功效是将屏幕上输出的内容在背景打印出来。TextBox("输出框","default",12,TextField.ANY),这个是用来设置对话框的属性。我明天测试了一下,看了一下文档,次要在最初两个属性,数字暗示这个输出框能够承受的最年夜字符数量,TextField.ANY-恣意字元;TextField.EMAILADDR-承受Email地点;TextField.NUMERIC-只承受数字输出;TextField.PASSWORD-输出暗码;TextField.PHONENUMBER-输出德律风号码,就是说能够承受数字,空格,星号,井号;TextField.URL-承受输出的URL;TextField.CONSTRAINT_MASK-用来和TextBox的getConstraints()办法所传回的了局做AND逻辑运算,然后能够获得今朝的限制设置。固然,这个参数不要在TextBox创立的时分利用。
呵呵,TextBox算是我学了这几天最复杂最简单的工具了,呵呵,看来明天心境不错,多是星巴克的感化哦。呵呵。。。对了,说点题外话,喝咖啡的时分假如喜好到场牛奶的话必定是咖啡到进牛奶,如许咖啡内里的牛奶喷鼻味加倍浑厚^_^也是我的习气,固然,我历来不放糖,我以为那回损坏咖啡原本的酸味。歇息的时分磨上一杯现磨的咖啡会让你即刻以为生存的文雅的地方,也会让你临时阔别乡村的懊恼。咖啡&烟,一个宁静的周末加上j2me材料的相伴,感到不错:)
呵呵,扯远了=_=!
再入手下手看看From咯,和HTML内里一样,Form独自存在是没有任何意义的。它必需包括有Item类的子类才会有感化。
写了一个Form的测试程序:
packagecom.graph;
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;
/**
*@authorYouLi
*
*CopyRight(C)2005www.iguess.com.cn
*/
publicclassFormTestextendsMIDletimplementsCommandListener,ItemStateListener{
privateDisplaydisplay;
Commandcommit;
publicFormTest(){
display=Display.getDisplay(this);
//TODO主动天生机关函数存根
}
protectedvoidstartApp()throwsMIDletStateChangeException{
//TODO主动天生办法存根
commit=newCommand("Commit",Command.SCREEN,1);
Formf=newForm("FormTest");
f.append("String1");//相称于newStringItem(null,"String1")
f.append("String2");
f.append(newStringItem("Label1","Content2"));
f.append(newStringItem("Label2","Content2"));
f.addCommand(commit);
f.setCommandListener(this);
f.setItemStateListener(this);
display.setCurrent(f);
}
protectedvoidpauseApp(){
//TODO主动天生办法存根
}
protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{
//TODO主动天生办法存根
}
publicvoidcommandAction(Commandc,Displayables){
//TODO主动天生办法存根
Formtmp=(Form)s;
for(inti=0;i<tmp.size();i++){
StringItemsi=(StringItem)tmp.get(i);
//get()办法取回值是Item类,以是必要强迫转化味StringItem类。
System.out.println(si.getText());
}
}
publicvoiditemStateChanged(Itemarg0){
//TODO主动天生办法存根
}
}
呵呵,基础上再程序内里虽然说没有甚么正文,可是全部StringItem自己并非很庞大。以是也没有过量的纪录。而ImageItem的利用与StringItem基础不异。它的机关办法是:
Append(newImageItem(标记笔墨,Image对象,地位把持参数,替换笔墨));
ImageItem地位参数次要就是以下几个咯:ImageItem.LAYOUT_DEFAULT;ImageItem.LAYOUT_LEFT;ImageItem.LAYOUT_RIGHT;ImageItem.LAYOUT_CENTER;ImageItem.LAYOUT_NEWLINE_BEFORE;ImageItem.LAYOUT_NELINE_AFTER
它的别的一个机关办法就是append(newImage());这个相称于挪用了Append(newImageItem(null,Image对象,ImageItem.LAYOUT_DEFAULT,null))来机关ImageItem对象。
ChoiceGroup,当Form与ChoiceGroup共同利用的时分就和再后面利用List一样,由于ChoiceGroup和List一样会为我们构建一个Choice选择框。仍是先看程序咯:
packagecom.graph;
/**
*@authorYouLi
*
*CopyRight(C)2005www.iguess.com.cn
*/
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;
publicclassChoiceGroupTestextendsMIDletimplementsItemStateListener{
privateDisplaydisplay;
publicChoiceGroupTest(){
display=Display.getDisplay(this);
//TODO主动天生机关函数存根
}
protectedvoidstartApp()throwsMIDletStateChangeException{
//TODO主动天生办法存根
Formf=newForm("FormTest");
ChoiceGroupcg=newChoiceGroup("ChoiceGroupTest",Choice.EXCLUSIVE);
//构建Choice的参数和List比拟,除IMPLICIT不成用外,EXCLUSIVE,IMPLICIT参数是能够用的
cg.append("A",null);
cg.append("B",null);
cg.append("C",null);
f.append(cg);
f.setItemStateListener(this);
display.setCurrent(f);
}
protectedvoidpauseApp(){
//TODO主动天生办法存根
}
protectedvoiddestroyApp(booleanb)throwsMIDletStateChangeException{
//TODO主动天生办法存根
}
publicvoiditemStateChanged(Itemitem){
//TODO主动天生办法存根
ChoiceGrouptmp=(ChoiceGroup)item;
System.out.println("Choice"+tmp.getSelectedIndex()+"selected");
}
}
一切的手机内里我们都看到了一个调剂音量的按钮,这个按钮实践上挪用的GUI介面元素就是Gauge。Gauge的机关办法内里有4个参数,第一个就是Gauge的标签,第二个就是Gauge是不是撑持与用户互动。剩下的两个参数就是这个图形的长度还宽度咯。
仍是看看例子吧。呵呵,感到像是例子编写员一样,这段工夫写这类例子写了良多。可是也有良多优点,呵呵,最少让我记着了很多工具。以是我倡议兄弟们不要靠拷贝,粘贴来写本人的代码,最好这类进修阶段就一行一行的写。
packagecom.graph;
/**
*@authorYouLi
*
*CopyRight(C)2005www.iguess.com.cn
*/
importjavax.microedition.lcdui.*;
importjavax.microedition.midlet.*;
publicclassGaugeTestextendsMIDletimplementsItemStateListener{
privateDisplaydisplay;
Gaugeg1;
Gaugeg2;
publicGaugeTest(){
display=Display.getDisplay(this);
//TODO主动天生机关函数存根
}
protectedvoidstartApp()throwsMIDletStateChangeException{
//TODO主动天生办法存根
Formf=newForm("FormTest");
g1=newGauge("Gauge1",true,200,100);
g2=newGauge("Gauge2",flase,200,100);
f.append(g1);
f.append(g2);
f.setItemStateListener(this);
display.setCurrent(f);
}
protectedvoidpauseApp(){
//TODO主动天生办法存根
}
protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{
//TODO主动天生办法存根
}
publicvoiditemStateChanged(Itemitem){
//TODO主动天生办法存根
Gaugetmp=(Gauge)item;
if(tmp.getLabel().equals("Gauge2")){
g1.setValue(tmp.getValue());
}
}
}
然后就是Form的别的一个对象,DateField。仍是写了一个对照复杂的工夫调剂。经由过程这个程序我们来看DateField的各项属性。
packagecom.graph;
/**
*@authorYouLi
*
*CopyRight(C)2005www.iguess.com.cn
*/
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;
importjava.util.*;
publicclassDateFieldTestextendsMIDletimplementsItemStateListener{
privateDisplaydisplay;
publicDateFieldTest(){
display=Display.getDisplay(this);
//TODO主动天生机关函数存根
}
protectedvoidstartApp()throwsMIDletStateChangeException{
//TODO主动天生办法存根
Formf=newForm("FormTest");
Datenow=newDate();
DateFielddf=
newDateField("DateFieldTest",DateField.DATE_TIME);
df.setDate(now);
f.append(df);
f.setItemStateListener(this);
display.setCurrent(f);
}
protectedvoidpauseApp(){
//TODO主动天生办法存根
}
protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{
//TODO主动天生办法存根
}
publicvoiditemStateChanged(Itemitem){
//TODO主动天生办法存根
DateFieldtmp=(DateField)item;
Dated=tmp.getDate();
System.out.println(d.getTime());
}
}
在初始化DateField的时分它有两个属性,第一个就是DateField的标签,第二个就是输出形式。MIDP一共为DateField供应了三种输出形式。DateField.DATE_TIME,DateField.DATE;DateField.TIME。(ps:虽然说有三种形式,不外由于一样平常情形下我们输出都必要日期与详细工夫都输出,以是我在例子内里也就是用的DateField.DATE_TIME形式咯。)
然后另有最初一个对照主要的初级图形处置事件,Ticker,这个类完成的效果就和HTML内里利用javascript写的一个赛马灯程序效果差未几。
packagecom.graph;
/**
*@authorYouLi
*
*CopyRight(C)2005www.iguess.com.cn
*/
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;
publicclassTickerTestextendsMIDletimplementsCommandListener{
privateDisplaydisplay;
Commandcommit;
publicTickerTest(){
display=Display.getDisplay(this);
//TODO主动天生机关函数存根
}
protectedvoidstartApp()throwsMIDletStateChangeException{
//TODO主动天生办法存根
commit=newCommand("Commit",Command.SCREEN,1);
TextBoxtb=new
TextBox("Content","TickerTest",20,TextField.ANY);
tb.setTicker(newTicker("TickerTest..."));
tb.addCommand(commit);
tb.setCommandListener(this);
display.setCurrent(tb);
}
protectedvoidpauseApp(){
//TODO主动天生办法存根
}
protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{
//TODO主动天生办法存根
}
publicvoidcommandAction(Commandarg0,Displayables){
//TODO主动天生办法存根
TextBoxtmp=(TextBox)s;
System.out.println(tmp.getString());
}
}
可使用Ticker的getString()办法获得赛马灯中的笔墨,也能够经由过程setString()办法为赛马灯设置文本内容。
MIDP中几个主要的初级图形处置元素差未几也就这么多了。这几天也把本人头几天的进修条记看了一下,总结了一下几个做手持设备的开辟的时分应当注重的方面。呵呵,也算是本人筹办入手下手做实践开辟的一个筹办吧。
1、手持设备究竟不是PC,它的屏幕,电力供给,内存等等都很无限,以是我以为在做实践开辟的时分图形介面仍是应当已复杂为主,不该该过量的利用庞大的图形介面。固然,呵呵,游戏除外。我说的是做使用程序开辟的成绩。
2、只管利用初级图形处置元素,没有特别必要的时分如许做有益于我们做平台移值。呵呵,最少在做一个程序的时分应当用初级图形处置元素先完成基本模块的编写,然后在依据实践呆板的SDK得当的利用初级图形处置元素。
3、有输出框的元素,为了便利应当利用TextField.NUMBERIC等流动的输出体例,以避免用户在利用的时分过量的按键盘举行字符元素转化^_^
4、仿佛另有个kAWT图形处置包,团体不是很保举利用。这个包实践就是awt的简化版,在处置图形的效力和兼容性上另有一些成绩。呵呵,假如不出更新版本我想最好仍是不要利用咯。^_^
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大. |
|