JavaME学习笔记

JAVA自学教程(史上最全) JAVA自学教程(史上最全)ppt版,资源来自网络,与大家共勉! 立即下载
  1 体系介绍和环境配置 ... 1

1.1 J2ME 分为两类: ... 1

1.2 J2ME 体系架构 ( 底层— > 高层 ) 2

1.3 环境搭建 ... 2

2 高级界面开发 ... 2

2.1 MIDlet(Mobile Information Devices let) 移动信息设备小程序 ... 2

2.2 MIDlet 三种状态 ... 2

2.3 JAD 文件 ... 3

2.4 MANIFEST. 3

2.5 界面开发 (javax.microedition.lcdui) 3

2.6 多个按钮加入界面的排布规律 ... 3

2.7 Command 事件响应 ... 3

2.8 List 3

2.9 TextBox. 4

2.10 Ticker 滚动条 ... 4

2.12 表单元素 ... 5

2.12.1 ChoiceGroup. 5

2.12.2 CustomItem.. 5

2.12.3 DateField. 5

2.12.4 Gauage 进度条 ... 5

2.12.5 ImageItem.. 5

2.12.6 TextField 类似 TextBox. 6

2.12.7 StringItem 类似 Label 6

2.13 ItemCommandListener(item 事件 ) 6

2.14 ItemStateListener 6

3 数值运算 Math. 6

4 定时器 ... 6

5 手机震动和闪烁 ... 7

6 画布开发 Canvas (低级界面) ... 7

7 RMS 编程 (Record Management System) 8

8  网络编程 ... 9

9 Http 编程 ... 10

10 GameAPI 11

11 代码优化 ... 13

1 体系介绍和环境配置

 

1.1 J2ME 分为两类:

1 ) CDC(Connected Device Configuration) 如 PDA CVM

2 ) CLDC(Connected Limeted Device Configuration) 如手机 KVM(Kilo Virtual Machine)

 

1.2 J2ME 体系架构 ( 底层— > 高层 )

底层操作系统—》配置 (Configurations) —》描述 (Profiles) —》可选包

注:手机属于 CLDC 和 MIDP(Mobile Information Device Profile)

 

1.3 环境搭建

1 ) JDK1.6  java.sun.com/j2se

2 ) WTK2.5.2 java.sun.com/j2me

              WTK 重要目录介绍

              apps :例子及源码 bin :命令行工具 docs :文档 lib :类库

3 )插件 EclipseMe1.7.7 www.eclipseme.org 分别与 eclipse 和 WTK 绑定

4 ) wtk 提供了四种手机模拟器,需要特殊模拟器可以到相应手机厂商网站下载

              Nokia : www.forum.nokia.com

              Moto : developer.motorola.com

 

2 高级界面开发

 

2.1 MIDlet(Mobile Information Devices let) 移动信息设备小程序

 

2.2 MIDlet 三种状态

a) 运行状态 ,startApp()

b) 暂停状态 ,pauseApp(), 通过 notifyPaused() 可进入该状态

c) 销毁状态 ,destroyApp(), 通过 notifyDestroyed() 可进入该状态

注:程序运行调用构造函数一次,在运行状态和暂停状态可相互切换,关闭则进入销毁状态

 

2.3 JAD 文件

描述具体运行的配置以及 JAR 文件所在位置

 

2.4 MANIFEST

描述 MIDlet Suite 的配置,扩展名为 .mf

 

2.5 界面开发 (javax.microedition.lcdui)

1) 界面组件 Displayable 及子类

2) 把组件添加到界面 Display 类

              Display d = Display.getDisplay(this);

              d.setCurrent(Displayable dis);

3)Command 类

不同于 Displayable ,只能用 Displayable.addCommand(Command c);

 

2.6 多个按钮加入界面的排布规律

1 )不同种类按钮, WTK 优先级排序:

ITEM,SCREEN,OK,HELP,BACK,EXIT,CANCEL,STOP

2 )同一种类按钮,在构造函数内划分优先级,越小越优先

3 ) BACK,CANCEL,EXIT,STOP 倾向抢占左方,优先级为 BACK,CANCEL,EXIT,STOP

4 )只在 WTK 满足这样的规律

 

2.7 Command 事件响应

1 )编写一个类实现 CommandListener ( javax.microedition.lcdui )

2 )用 Displayable.setCommandListener() 方法将 Displayable 与该类绑定(与 J2SE 不同)

 

2.8 List

1) 三种类型: implicit 互斥, exclusive 另一种互斥, multiple 多选

2 )操作:

       添加项 append()

       删除项 delete() deleteAll()

       修改项 set()

       插入项 insert()

       得到项内容 getString() getImage()

       设置项字体 setFont()

       获取所选项 getSelectedIndex()

       list 总共多少项 size()

 

注:

获得多选项

1 )遍历每一项判断是否选中

2 )利用 getSelectedFlags() 判断那些项被选中

 

List 内置一 command 专门为 implicit 模式,可通过 SELECT_COMMAND 获得

 

2.9 TextBox

1) 创建 TextBox 时用到 TextField 的常量进行约束

2) 操作:

       获得光标位置 getCaretPosition() 从 0 开始

       获取所有文本 getString()

       插入文本 insert()

       替换文本 setString()

       删除文本 delete()

       设置初始输入法 setInitialInputMode()

       获取输入文字个数 size()

 

2.10 Ticker 滚动条

Displayable.setTicker();

 

2.11 Alter

1 ) Display.setCurrent()

2 ) alterType

       alarm 提醒 confirmation 确认 error 错误 info 通知 warning 警告

3 ) setTimeout() 设置持续时间 setTimeout(Alter.FOREVER) 永远不消失

 

2.12 表单元素

1 ) Form.append(item)

2 ) Display.setCurrentItem(item) 如有多个选择,设置为默认选择,但是在之前必须先把 item 添加到 Form

 

2.12.1 ChoiceGroup

类型: Choice.EXCLUSIVE 单选, Choice.MULTIPLE 复选, Choice.POPUP 下拉列表

 

2.12.2 CustomItem

用户自定义 Item ,必须继承自该抽象类

 

2.12.3 DateField

1 )三种模式

       DateField.DATE 只显示或修改日期

       DateField.TIME 只显示或修改时间

       DateField.DATE_TIME 显示或修改日期时间

2) getDate() setDate()

 

2.12.4 Gauage 进度条

1) interactive 参数:是否可以修改进度条的值

2 ) setValue() getValue()

 

2.12.5 ImageItem

1 )参数 layout :布局

   参数 altText :图片加载失败时显示的文字

   参数 appearanceMode :图片显示的样式

   s

2.12.6 TextField 类似 TextBox

 

2.12.7 StringItem 类似 Label

 

2.13 ItemCommandListener(item 事件 )

适用于表单上将某个表单元素和命令按钮进行绑定

步骤 1) implements ItemCommandListener

步骤 2 ) item.addCommand(Command)

步骤 3) item.setItemCommandListener(ItemCommanListener)

 

 

2.14 ItemStateListener

某个表单元素状态改变时触发事件

步骤 1 ) implements ItemStateListener

步骤 2 ) Form.setItemStateListener(ItemStateListener)

 

3 数值运算 Math

              ceil 不小于一个数字的最小整数 eg:ceil(1.3)=2

              floor 不大于一个数字的最大整数 eg:floor(1.8)=1

              toDegrees 弧度转角度

              toRadians 角度转弧度

             

4 定时器

每隔一段时间做一件事情

步骤 1 :定义一个类,继承 TimerTask ,重写 run 方法

步骤 2 :定义一个 Timer

       schedule(TimerTask task, Date time);   某时刻触发

       schedule(TimerTask task, Date firstTime, long period);      某个时刻开始执行,指定重复执行的周期,单位是毫秒

       schedule(TimerTask task, long delay);  某段时间之后触发

       schedule(TimerTask task, long delay, long period);      某段时间之后触发开始执行

      

5 手机震动和闪烁

震动: Display.flashBacklight(int) int 为持久时间

闪烁: Display.vibrate(int)     int 为持久时间

 

6 画布开发 Canvas (低级界面)

步骤 1 :写一个 class 继承 Canvas ,必须重写 paint ( Graphics )

步骤 2: Display.setCurrent ( Canvas )

 

showNotify ()画布放在界面最前端显示时自动调用

hideNotify ()画布隐藏时自动调用

paint ( Graphics )画布出现后自动调用

setFullScreenMode ( boolean )设置全屏

getHeight (), getWidth () 获取高度和宽度

 

Graphics 方法:

       setColor()       设置绘图颜色

       setStrokeStyle()     设置划线样式 SOLID 实线 DOTTED 虚线

       drawLine()     画直线

       drawRect()/fillRect()     画矩形 / 实心矩形

       drawRoundRect()/fillRoundRect() 画圆角矩形 / 圆角实心矩形

       drawArc()/fillArc() 画弧线 / 填充弧线

       fillTriangle()    填充三角形

       repaint()  强制重画

       setFont() 修改字体

       drawString()   画字符串

       注:确定定位点 LEFT,HCENTER,RIGHT | BUTTOM,TOP,BASELINE

                     将字画在屏幕正中,要用到 Font.stringWidth(String),Font.getHeight()

       drawImage()   画图片

       drawRegion()  截取图片的一部分画到另外一个地方去

      

按键事件:

       keyPressed(int keyCode)       按下某个键

       keyReleased(int keyCode)      释放某个键

       keyRepeated(int keyCode)     一直按着某个键

      

      注:除 0-9 键外其他键被认为为特殊键(游戏键),特殊键不能直接通过 keyCode 获得,要通过 getGameAction(keyCode) 转换才能得到相应值,反之可以通过 getKeyCode(action) 将 action 转换为 keycode

      

指针事件:

       pointerDragged(int x, int y)

       pointerPressed(int x, int y)

       pointerReleased(int x, int y)

       注: x,y 为指针当前位置

       hasPointerEvents() 判断手机是否支持指针按下,释放

       hasPointerMotionEvents() 判断手机是否支持指针拖动

 

7 RMS 编程 (Record Management System)

 

1)javax.microedition.rms

2)RecordStore 相当于 表

4) 数据文件路径在:用户名 /j2mewtk/appdb/temp.DefaultColorPhone** 下面的 *.db 文件

3) 记录集操作

    打开记录集                                 RecordStore.openRecordStore()

              得到记录集大小                 RecordStore.getSize();

              关闭记录集                        RecordStore.closeRecordStore();

              列出当前所有记录集            RecordStore.listRecordStores();

              删除记录集                          RecordStore.deleteRecordStore();

              获取记录集可用空间            RecordStore.getSizeAvialable();

5)RecordStore 记录操作(每条记录都有 ID ,第一条记录 ID 为 1 )

              添加记录                                                       addRecord()

              得到当前记录条数                           getNumRecords()

              根据 ID 获得记录                                    getRecord()

              根据 ID 获得记录字节数                    getRecordSize()

              修改记录                                                                setRecord()

              删除记录                                                                deleteRecord()

              获取下一条要插入的记录 ID getNextRecordID()

6) 将对象写入 RMS

              自己写方法将对象转为字节数组

              DataOutputStream

              ByteArrayOutputStream baos = new ByteArrayOutputStream();

              DataOutputStream dos = new DataOutputStream(baos);

              dos.writeUTF(this.cname);

              dos.writeUTF(this.phone);

              dos.writeUTF(this.age);

              baos.toByteArray();

7) 遍历记录

              RecordStore rs = RecordStore.openRecordStore();

              RecordEnumeration re = rs.enumerateRecords();

              while(re.hasNextElement())

              {

                            re.nextRecord();

              }

8) 记录监听 (implements RecordListener)

              记录添加时触发            recordAdded(RecordStore, recordid);

              记录修改是触发            recordChanged(RecordStore, recordid);

              记录删除时触发            recordDeletedRecordStore, recordid);

              绑定监听器                   rs.addRecordListener(RecordListener);

9) 数据过滤

              implements RecordFilter,

              实现 match 函数 ,

              用枚举方法遍历 , 传入类的对象

10) 数据排序

              implements RecordComparator,

              实现 compare 方法 , 返回指定值

                     RecordComparator.PRECEDES: 记录 1 在记录 2 前面

                     RecordComparator.FOLLOWS: 记录 1 在记录 2 后面

                     RecordComparator.EQUIVALENT: 记录 1= 记录 2,

              用枚举方法遍历 , 传入类的对象

11) 注意事项

              a. 可以修改 MF 或者 JAD 文件中的 MIDlet-Data-Size 属性来改变 RMS 的最小存储字节数 , 首选 JAD

              b. 一个记录集的容量有限 , 约 100K, 如果数据太大 , 考虑用多个记录集

             

8  网络编程

 

1)Socket 编程 (javax.microedition.io)SocketConnection

       a. 服务器端

              // 监听 9999 端口

              ServerSocketConnection ssc =

                            (ServerSocketConnection)Connector.open("socket://:9999");

              ssc.getLocalAddress();         // 获取本地 IP 地址

              ssc.getLocalPort();               // 获取本地端口

              // 等待客户端连接 , 如果没有客户端连接则阻塞

              SocketConnection sc = (SocketConnection)ssc.acceptAndOpen();

              sc.getAddress();                   // 获得客户端 IP 地址

              DataInputStream dis = sc.openDataInputStream();

              String str = dis.readUTF();    // 如果没有读到内容则死等

       b. 客户端

              // 连接到服务器端 , 与服务器端的 sc 是同一对象

              SocketConnection sc = (SocketConnection)Connector.open("socket://127.0.0.1:9999");

              DataOutputStream dos = sc.openDataOutputStream();

              dos.writeUTF(String);

             

2)UDP 编程 (javax.microedition.io.UDPDatagramConnection)

       a. 服务器端

              // 监听 9999 端口

              int max = 255;

              UDPDatagramConnection udc =

                            (UDPDatagramConnection)Connector.open("datagram://:9999");

              // 接收数据报

              Datagram dg = udc.newDatagram(max);

              udc.receive(dg);

              byte[] data = dg.getData();

              String str = new String(data, 0, dg.getLength());

               

       b. 客户端

              UDPDatagramConnection udc =

                            (UDPDatagramConnection)Connector.open("datagram://127.0.0.1:9999");

              // 发送数据报

              String str = " 你好 ";

              Datagram dg = udc.newDatagram(str.getBytes(), str.getBytes().length);

              udc.send(dg);

             

9 Http 编程

 

       HttpConnection hc = (HttpConnection)Connector.open("http://localhost:9999/test.html");

       hc.getResponseCode();                // 返回代码,如 500 , 404

       hc.getResponseMessage();           // 返回信息

       hc.getHost();

       hc.getPort();

       hc.getProtocol();

       hc.getURL();

       hc.getQuery();                                   // 得到查询字符串

       hc.getRequestMethod();               // 得到请求方法 Post , Get

       hc.setRequestMethod(String);       // 设置请求方法

       hc.getLength();                                  // 获得网页大小

 

       与服务器交互:

       hc.openDataInputStream();/hc.openInputStream();

       hc.openDataOutputStream();/hc.openOutputStream();

      

10 GameAPI

 

1)    javax.microedition.lcdui.game 提高游戏性能

 

2)    GameCanvas :游戏画布,比普通画布更加适合游戏开发

       a) 基本结构

              public MyGameCanvas extends GameCanvas implements Runnable{

                     public MyGameCanvas(){

                            //true 特殊键被禁用,通过 getKeyStates() 获得按下哪些游戏键

                            super(true);

                     }

                     public void run(){}

              }

       b) 可以通过 getGraphics() 得到画笔 , 不用写 paint() 函数 , 不用 repaint() 开销 ,

         flushGraphics() 将缓冲区里的图像显示在屏幕上

      

      

 

3)    Layer :图层,表示画布上的某个可视的物体,是抽象类

              a)Sprite :可以充当游戏中的具体角色,一般用于运动角色,如子弹,汽车等

                     * 重要方法

                            move(int x, int y);                // 移动相对位置

                            setPosition(int x, int y);  // 移动绝对位置

                            Sprite(Image image);

                            Sprite(Image image, int frameWidth, int frameHeight);

                            paint(Graphics g);                // 将图层画到屏幕上

                     * 悬挂

                            defineReferencePixel(int x, int y);  // 定义图层悬挂点

                            setRefPixelPosition(int x, int y);    // 定义悬挂点在屏幕的某个位置

                            setTransform(int transform)                // 旋转

                     * 碰撞

                            // 定义一个矩形的不可碰撞区域

                            defineCollisionRectangle(int x, int y, int width, int height);

                            // 判断是否和另外一个 Sprite 碰撞,参数 2 为 true ,则认为不透明点发生碰撞才算碰撞

                            collidesWith(Sprite s, boolean pixelLevel);

                            // 判断是否和 TiledLayer 发生碰撞

                            collidesWith(TiledLayer t, boolean pixelLevel);

                     * 带动画的角色

                            // 切割图片原则:首先走行,一行走完,取下一列,编号从 0 开始

                            Sprite(Image image, int frameWidth, int frameHeight);

                            // 得到总帧数

                            int getRawFrameCount();

                            void nextFrame()/void preFrame()/void setFrame(int sequenceIndex);

                            // 设置帧的顺序

                            setFrameSequence(int[] sequence);/int getFrameSequenceLength();

                            // 设置图片

                            setImage(Image img, int frameWidth, int frameHeight);

                           

              b)TiledLayer :可以充当游戏中的具体角色,一般用于环境角色,如地图等

                     * 构造函数

                            // 将图片用 tileWidth , tileHeight 分割,指定将要填充的列数和行数

                            // 图片小块 index 从 1 开始

                            TiledLayer(int columns, int rows, Image image, int tileWidth, int tileHeight)

                            void patint(Graphics g);

                            // 将某个图片小块填入相应的位置

                            void setCell(int col, int row, int tileIndex);

                            // 得到某行某列图片的 Index

                            int getCell(int col, int row);

                            int getCellHeight();/int getCellWidth();

                            int getColumns();/int getRows();

                            // 用一个图片小块填充整个网格

                            void fillCells(int col, int row, int numCols, int numRows, int tileIndex);

                            // 修改图片

                            void setStaticTileSet(Image image, int tileWidth, int tileHeight);

                     * 技巧

                            应将不同的物体弄成不同的图层,便于碰撞检测

4)    LayerManager: 管理图层的变换

              void append(Layer l);

              void remove(Layer l);

              // 设置窗口可视部分

              void setViewWindow(int x, int y, int width, int height);

              // 将所有图层统一画出来

              void paint(Graphics g, int x, int y);

             

11 代码优化

       1) 微观编程

              * 除法优化 / 改为 >>

              * 局部变量赋值性能高于全局变量

              * 使用 switch 代替 if else, 可读性比较好

       2) 字符串

              * String str = "China";

              * s.length()==0

              * (StringBuffer)sb.append(',');

              * 用 StringBuffer 比较好

       3) 异常处理 , 尽量少用

       4) 内部类需要额外开销

       5) 引用不用后置空

          连接最终要关闭

       6) Midlet 各函数功能分配

              * 成员变量生成和构造函数 , 在生命周期中执行一次 , 一般完成资源分配 , 对象创建

              * 一般在定义时创建对象 , 或在构造函数中创建对象

              * pause 函数运行之后如果再继续 ,startApp 会运行 , 所以可以在 pause 函数中释放一些资源 , 在 startApp 中获得

              * destroyApp 释放所有资源

JAVA大学基础教程(第六版) java 大学基础教程(第六版),java入门必看的教材,如果和配合英文原版看的话,英语也会有很大的进步! 立即下载

相关推荐

java代码大全

后面还有很多很多代码…… • 事件源对象 event.srcElement.tagName event.srcElement.type • 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); • 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey • 事件返回值 event.returnValue • 鼠标位置 event.x event.y • 窗体活动元素 document.activeElement • 绑定事件 document.captureEvents(Event.KEYDOWN); • 访问窗体元素 document.all("txt").focus(); document.all("txt").select(); • 窗体命令 document.execCommand • 窗体COOKIE document.cookie • 菜单事件 document.oncontextmenu • 创建元素 document.createElement("SPAN"); • 根据鼠标获得元素: document.elementFromPoint(event.x,event.y).tagName=="TD document.elementFromPoint(event.x,event.y).appendChild(ms) • 窗体图片 document.images[索引] • 窗体事件绑定 document.onmousedown=scrollwindow; • 元素 document.窗体.elements[索引] • 对象绑定事件 document.all.xxx.detachEvent(‘onclick‘,a); • 插件数目 navigator.plugins • 取变量类型 typeof($js_libpath) == "undefined" • 下拉框 下拉框.options[索引] 下拉框.options.length • 查找对象 document.getElementsByName("r1"); document.getElementById(id); • 定时 timer=setInterval(‘scrollwindow()‘,delay); clearInterval(timer); 后面还有很多很多……

[JavaME入门篇][1]JavaME开发环境搭建

做开Java的开发,环境搭建会比较麻烦前期准备:     JDK:jdk1.5     WTK:sun_java_wireless_toolkit-2_5_2-ml-windows.exe     Eclipse:Eclipse V3.2     EclipseME:eclipseme.feature_1.7.9_site.zip1、把JDK安装好,设置好环境变量2、安装WTK,默认安装即

egarden的专栏 1592

javaME教程

java的ppt教程,主要是教导j2me开发,可进一步开发安卓

java me教程_Java ME基础教程

第一部分 入 门第1章 开始Java之旅 21.1 Java ME市场简介 21.1.1 从设备制造商角度来看 21.1.2 从运营商角度来看 31.1.3 从消费者角度来看 31.2 Java ME平台 41.2.1 对Java移动版本的需求 41.2.2 移动设备上的Java 51.3 配置 71.3.1 CLDC简介 71.3.2...

weixin_28674303的博客 2073

JavaMe实用教程.ppt

JavaMe实用教程.ppt

cartographer基于3d地图的纯定位模式

关于纯定位模式呢,本人试过2d和3d,怎么说呢,有条件的话,建议直接上3d,因为博主当初在做定位时针对室内和室外都尝试过,2d只在室内环境下效果会很棒,但是在室外就呵呵啦!所以这里直接讲解3d室外定位(建图篇请自己查看我之前的博客:[3d建图](https://blog.youkuaiyun.com/qq_40216084/article/details/105531983) 看了我之前的博客大概知道配置文件和源文件路径了,我这里就不把路径写出来了,挺麻烦的。直接讲怎么做把,有不懂的留言,看到了我一定知无不言。 **首

qq_40216084的博客 5552

Java全程学习(一)

Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java 应用程序。Java SE 包含了支持Java Web 服务开发的类,并为Java Platform,Enterprise Edition(Java EE)提供基础。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java 应用程序。

SuYuewu的博客 1128

利用绝对式编码器实现电机无限旋转的配置与优化

本文详细解析了如何利用绝对式编码器实现电机的无限旋转功能。通过切换驱动器编码器工作模式、精确计算逻辑位置范围等关键配置步骤,解决了传统方案在多圈计数溢出时的定位难题。该方案无需硬件改造,适用于大型回转台、连续供料系统等需要大范围连续绝对定位的自动化场景。

weixin_29184371的博客 239

【JAVA】第一章 JAVA入门

文章目录本章大纲1. 概念引入1.1 Java是什么?1.1.2 Java语言发展史1.1.3 Java语言版本迭代1.1.4 Java语言平台版本1.1.5 Java语言特点1.1.6 Java应用领域1.2 Java语言跨平台的实现原理1.3 JDK & JRE & JVM2. 开发环境搭建2.1 DOS命令的介绍和使用3. java入门案例4. 开发工具选择5. 基本概念 本章大纲 概念引入 开发环境搭建 java入门案例 开发工具选择 基本概念 1. 概念引入 1.1 Java是

qq_51490070的博客 1305

Windows11安装Ubuntu 20.04.3 LTS双系统(详细过程)

一、基础环境 听说BIOS模式的传统MBR模式和新式UEFI模式,会对安装双系统产生影响。Windows11应该都是UEFI吧,可以按win+r输入msinfo32回车确认查看BIOS模式,我的电脑是UEFI+双硬盘 Ubuntu安装准备 1、 官网下载Ubuntu 20.04.3 LTS镜像iso文件:https://ubuntu.com/download/desktop 2、 下载官网推荐的U盘启动制作工具rufus: https://rufus.ie/ 3、制作启动u盘 插入U盘, 运行 rufu

学习随笔 9万+

基于CNN的表情识别(FER)pytorch实现

Report for FER Jian Tang Abstract 我们使用卷积神经网络(CNN)实现了baby的面部表情识别(FER)。 数据上,我们获取了开源FER数据集FER2013[1],besides我们使用爬虫获取了baby相关的人脸图片,进行了手工分类标注以形成一个全新的baby FER数据集。 模型上,我们首先复现了Luan[2]的工作,即参考Kuo[3]在CVPR 2018上的工作并实现一个轻量的CNN网络,在FER2013上进行训练并得到了XXXX%的平均分类准确率(avg a

qq_20241587的博客 3683

java me学习_Java ME学习中(2)

昨天完全无代码,今天开始接触代码了……javax.microedition.midlet.MIDlet中有六个比较重要的函数:startApp、pauseApp、destroyApp都是自动调用的,还有notifyPaused(人工暂停)、notifyDestroyed(人工销毁)、notifyRequest(人工运行)。程序运行后,系统自动调用构造函数(之后无法调用)和startApp,所以可以...

weixin_42465140的博客 195

12、控件使用之录入英文、阿拉伯数字删除增加功能及二维码显示

控件使用之录入英文、阿拉伯数字删除增加功能及二维码显示1、用到的控件2、添加控件2.1、添加【文本录入】控件2.1、添加【文本显示】控件2.1、添加【QR 二维码】控件3、保存工程及生成文件4、下载文件 1、用到的控件   需要用的显示控件为【文本显示】控件和【QR二维码】控件,以及触控控件【文本录入】控件。 2、添加控件 2.1、添加【文本录入】控件   【文本录入】控件也叫【ASCI 文本录入】,是用来录入ASCI 字符,打开 DGUS 软件,点击【触控控件】—【文本录入】,用鼠标框选一个区域,即可在右

嵌入式羊圈 626

JAVAME学习笔记(4)

要创建一个新的GameCanvas实例,只能通过继承并调用父类的构造函数: protected GameCanvas(boolean suppressKeyEvents), 这将使为GameCanvas准备的一个新的缓冲区也被创建并在初始化时被填充为白色。 为了在GameCanvas上绘图,首先要获得Graphics对象来渲染GameCanvas: protect...

郑州|boy的专栏 264

基于matlab的LFM脉冲压缩仿真

传统雷达测距是通过发射点频脉冲串实现的,通过发射脉冲与回波的时延确定目标的距离。此类方法易于实现,对接收机的要求较低。一般要获取更好的距离分辨力,需要增加发射信号的带宽,对于点频脉冲信号即需要减小发射脉冲宽度;而为获取更大的探测距离,提升雷达威力,则需要发射更大占空比的脉冲串。由于点频信号的时宽带宽积约等于1,因此不能同时增加信号的时宽和带宽。若要保持距离分辨力,增大占空比就需要减少雷达的脉冲重复周期(PRT)。这样会减小雷达的无模糊探测距离,也会造成目标回波频繁被遮挡,损失雷达威力。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 1770

华为OD机考双机位C卷 - 区间交集(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 区间交集

算法大师! 1136

JAVAME学习笔记(8)

Layer是一个抽象类,表示游戏中的一个可视元素。上节中讲述的Sprite就是Layer的一种。每个Layer都有位置(取决于它的左上角在其容器中的位置),宽度,高度和可视与否。 Layer的子类必须实现一个paint(Graphics)方法,使得它们能够被渲染。如果该Layer可见。 Layer从它的左上角开始渲染,其当前坐标(x,y)是相对于原始的Graphics对象。当渲染Layer时,应用...

郑州|boy的专栏 288

[Python + UG NX 二次开发新手教程] 第五课 采用Python / UF 开发模式

在 NX 二次开发里看到的“UF”是的缩写,它是 Siemens 提供的集合,也是整个 NX Open 体系里最贴近内核、历史最悠久的一套接口。相当于 NX 的“系统调用”——只要 NX 能做的事,UF 几乎都能调得动。Siemens 从 NX 12 开始把原来的 C 接口(UF)全部打包进了官方 Python 模块,命名空间为 NXOpen.UF.*,所以只要 NX 安装目录里带了 NXOpen\UF 子模块,就能在 Python 里直接调用 UF 函数。

温良 1004

[Java学习笔记]JavaSE,JavaEE和JavaME的区别

JavaSE:标准版,用于桌面应用程序的开发。 JavaEE:企业版,用于web程序的开发。服务器应用程序和服务。 JavaME:用于手机应用,java游戏的开发。

laura30的专栏 785

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JAVAME学习笔记(3)

GameCanvas类提供了基本的游戏用户接口。除了从Canvas继承下来的特性(命令,输入事件等)以外,它还提供了专门针对游戏的功能,比如后备屏幕缓冲和键盘状态查询的能力。 每个GameCanvas实例都会有一个为之创建的专用的缓冲区。因为每个GameCanvas实例都会有一个唯一的缓冲区。可以从GameCanvas实例获得其对应的Graphics对象,而且,只有对Graphic...

郑州|boy的专栏 239

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JAVAME学习笔记(5)

如果需要,开发者可以随时调用getKeyStates方法来查询键的状态。getKeyStates()获取游戏的物理键状态。返回值的每个比特位都表示设备上的一个特定的键。如果一个键对应的比特位的值为1,表示该键当前被按下,或者自上次调用此方法后到现在,至少被按下过一次。如果一个键对应的比特位的值为0,表示该键当前未被按下,并且自上次调用此方法后到现在从未被按下过。这种“闭锁行为(latching b...

郑州|boy的专栏 275

JAVAME学习笔记(2)

GameCanvas 这个类是LCDUI的Canvas类的子类,为游戏提供了基本的“屏幕”功能。除了从Canvas继承下来的方法外,这个类还提供了游戏专用的功能,如查询当前游戏键状态的能力,同步图像输出;这些功能简化了游戏开发并提高了性能。 Layer Layer类代表游戏中的一个可视化元素,例如Sprite或TiledLayer是它的子类;这个抽象类搭好了层(Laye...

郑州|boy的专栏 233

JAVAME学习笔记(1)

LCDUI包中的高级API部分。这些类大体可以分为两部分:Screen类及其 子类和Item类及其子类 Screen类的子类包括Alert,form,List 和TextBox,都可以被单独放置在屏幕上。 Alert类是一个用于显示数据给用户或者在进入下一个Di...

郑州|boy的专栏 402

JAVAME学习笔记(7)

Sprite非常适合移动的物体,如游戏主角、敌人等等,在游戏中,可以使用Sprite提供的碰撞检测功能来简化游戏逻辑。 使用defineCollisionRectangle()定义用于碰撞检测的Sprite的矩形区域。此指定的矩形是相对于未经变换的Sprite的左上角,该区域将用于检测碰撞。对于像素级的碰撞检测,仅仅在这个碰撞检测区内部的像素点会被检查。缺省的,Sprite的碰撞检...

郑州|boy的专栏 249
上一篇: (按键)深入分析J2ME平台MIDP低级事件处理机制
下一篇: 通过J2ME的录音功能实现简易示波器
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值