仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1025|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA网页编程之我的J2ME编程实习(7)――Canvas2

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:35:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)编程
/*
*Canvas2let.java
*
*Createdon2005年4月19日,下战书5:27
*/
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;
/**
*
*@authorAdministrator
*@version
*/
publicclassCanvas2letextendsMIDletimplementsCommandListener{
privateChoiceGroupfaceChoice;
privateChoiceGroupstyleChoice;
privateChoiceGroupsizeChoice;

privateCommandokCommand;
privateCommandexitCommand;
privateCommandbackCommand;

privateTextBoxfaceTextBox;
privateTextBoxstyleTextBox;
privateTextBoxsizeTextBox;

privateFormchoiceForm;

privateDisplayaDisplay;

privateMyCanvascanvas;

intface;
intsize;
intstyle;

publicCanvas2let(){
choiceForm=newForm("SelectFont");

faceChoice=newChoiceGroup("表面",Choice.EXCLUSIVE);
faceChoice.append("PROPORTIONAL",null);
faceChoice.append("MONOSPACE",null);
faceChoice.append("SYSTEM",null);

styleChoice=newChoiceGroup("作风",Choice.MULTIPLE);
styleChoice.append("PLAIN",null);
styleChoice.append("BOLD",null);
styleChoice.append("ITALIC",null);
styleChoice.append("UNDERLINED",null);

sizeChoice=newChoiceGroup("巨细",Choice.EXCLUSIVE);
sizeChoice.append("SMALL",null);
sizeChoice.append("MEDIUM",null);
sizeChoice.append("LARGE",null);

exitCommand=newCommand("加入",Command.EXIT,1);
okCommand=newCommand("断定",Command.OK,1);
backCommand=newCommand("前进",Command.BACK,2);

choiceForm.append(faceChoice);
choiceForm.append(styleChoice);
choiceForm.append(sizeChoice);

choiceForm.addCommand(exitCommand);
choiceForm.addCommand(okCommand);
choiceForm.setCommandListener(this);

canvas=newMyCanvas();
}
publicvoidstartApp(){
aDisplay=Display.getDisplay(this);
aDisplay.setCurrent(choiceForm);
}

publicvoidpauseApp(){
}

publicvoiddestroyApp(booleanunconditional){
}

publicvoidcommandAction(Commandc,Displayabled){
if(c==exitCommand){
destroyApp(false);
notifyDestroyed();
}
else{
//selectthefaceandsize
face=faceChoice.getSelectedIndex();
switch(face){
case0:face=Font.FACE_PROPORTIONAL;break;
case1:face=Font.FACE_MONOSPACE;break;
case2:face=Font.FACE_SYSTEM;break;
}

size=sizeChoice.getSelectedIndex();
switch(size){
case0:size=Font.SIZE_SMALL;break;
case1:size=Font.SIZE_MEDIUM;break;
case2:size=Font.SIZE_LARGE;break;
}

//selectthestyle
boolean[]styleSelect=newboolean[4];
for(inti=0;i<4;i++){
if(styleChoice.isSelected(i)&&i==0){
style|=Font.STYLE_PLAIN;
}
elseif(styleChoice.isSelected(i)&&i==1){
style|=Font.STYLE_BOLD;
}
elseif(styleChoice.isSelected(i)&&i==2){
style|=Font.STYLE_ITALIC;
}
elseif(styleChoice.isSelected(i)&&i==3){
style|=Font.STYLE_UNDERLINED;
}

}

//canvas=newMyCanvas();
aDisplay.setCurrent(canvas);
}
}

classMyCanvasextendsCanvasimplementsCommandListener{

publicMyCanvas(){

addCommand(backCommand);
setCommandListener(this);
}

publicvoidpaint(Graphicsg){
g.setColor(0xFFFFFF);
g.fillRect(0,0,getWidth(),getHeight());

g.setColor(0);
Strings="HelloWorld";
Fontf=Font.getFont(face,style,size);
g.setFont(f);
g.drawString(s,150,250,Graphics.RIGHT|Graphics.BOTTOM);
}

publicvoidcommandAction(Commandc,Displayabled){
if(c==backCommand){
aDisplay.setCurrent(choiceForm);
}
}



}
}
这个程序次要是加深对Canvas的Font的熟悉。
1.MIDlet类的机关函数应当是publicCanvas2let()而不该该是publicvoidCancas2let()。由于加了void就不会前往该类的对象,招致程序运转后没有反应。这是一个教导。
2.在Canvas中,必要利用代码
g.setColor(0xFFFFFF);
g.fillRect(0,0,getWidth(),getHeight());
来扫除上一个界面。然后再利用g.setColor(0);来设置绘画色彩。
3.关于这一点,应当如许了解:
既然利用了初级界面,那末就意味着屏幕上的统统都回你管,你有最年夜的权力。但你也有响应的任务,扫除屏幕的事情天然也要你来做
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。
蒙在股里 该用户已被删除
沙发
发表于 2015-1-21 10:39:02 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
乐观 该用户已被删除
板凳
发表于 2015-1-23 09:58:13 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
老尸 该用户已被删除
地板
发表于 2015-1-31 10:25:06 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-18 05:45:48 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
再现理想 该用户已被删除
6#
发表于 2015-3-6 00:33:35 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-9 21:06:51 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
admin 该用户已被删除
8#
发表于 2015-3-17 01:09:07 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
9#
发表于 2015-3-22 23:09:18 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
变相怪杰 该用户已被删除
10#
发表于 2015-3-24 05:20:26 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
愤怒的大鸟 该用户已被删除
11#
发表于 2015-3-30 02:30:40 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
爱飞 该用户已被删除
12#
发表于 2015-4-6 09:03:19 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
简单生活 该用户已被删除
13#
发表于 2015-4-6 11:46:33 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
只想知道 该用户已被删除
14#
发表于 2015-4-7 18:06:38 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
若相依 该用户已被删除
15#
发表于 2015-4-16 16:26:08 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
飘灵儿 该用户已被删除
16#
发表于 2015-4-22 14:54:52 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
活着的死人 该用户已被删除
17#
发表于 2015-5-6 00:13:02 | 只看该作者
是一种突破用户端机器环境和CPU
再见西城 该用户已被删除
18#
发表于 2015-5-9 19:54:47 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
飘飘悠悠 该用户已被删除
19#
发表于 2015-6-6 19:14:08 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
不帅 该用户已被删除
20#
发表于 2015-6-15 03:46:20 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 21:08

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表