J2ME学习笔记(五)-----MIDlets中GUI(图形)编程

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

MIDletsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">中GUI(MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">图形)MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">编程 MEspace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.MEs New Roman'">  MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">概述

MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">为运行在MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">容器中的MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">应用定义了一个APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,此APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">本身是建立在CLDC APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">之上的。MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">用户接口APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">的JavaMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类设计不是基于Java Abstract Window Toolkit(AWT)MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的,而是为移动电话这类小型移动信息设备特别设计的。这类设备只有有限的屏幕尺寸和键盘性能。当程序员采用MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">编写图形应用时,他们只能使用MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">或CLDC APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">。

 

2.MEs New Roman'">  MIDP GUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类

1MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">)所有MIDP GUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类都是javax.microedition.lcduiMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">包的组成部分。

2MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">)MIDPMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">用户接口的基本抽象图形是屏幕,ScreenMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类对面向设备的图形和用户交互进行了封装。每次应用只能显示一个屏幕。

3MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">)MIDP APIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">具有MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">高级(high-level)”MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">和MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">低级(low-level)”UIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类。

   MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">高级UI-----MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">例如Form,List,TextBox,TextField,AlertMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">和TickerMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">具有设备适配功能,它对图象,文本,文本域以及单选按钮等进行支持。

   MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">低级UI-----MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">例如CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类允许操作者任意绘画。

 

3.MEs New Roman'">  MIDP GUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">中主要的类

1)MEs New Roman'">  GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类-----MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">提供了用来绘画2DMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">几何对象的GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">对象。

javax.microedition.lcdui.GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">不是在MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">中显式创建的,MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">表示抽象画面的CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类在MIDP GUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">编程中提供了paint()MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">方法,piant()MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">方法取类型为GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">的一个参数,MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">用此参数实现MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">中GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的功能。

2)  DisplayableMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类-----MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">是一个抽象类 ,DisplayableMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">对象处理MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">的GUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">输出.MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">它有两个派生类javax.microedition.lcdui.CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">和javax.microedition.lcdui.ScreenMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">。

3)MEs New Roman'">        CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类-----CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类允许操作者任意绘画,MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">与GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类都是低级UI.MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">由GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类类提供的方法总是在CanvasMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的派生类中使用的。

4)MEs New Roman'">        ScreenMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类-----MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">是高级UIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,FormMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,ListMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,TextBoxMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,AlertMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类都是它的派生类。

 

4.MEs New Roman'">  MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">下面是GraphicsMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类用法的一段代码:

 

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

public class MidpGraphics extends MIDlet impleMEnts CommandListener

{

       Display display;

       testCanvas canvas;

       public MidpGraphics()

       {

              display=Display.getDisplay(this);

              canvas=new testCanvas();

       }

       public void startApp() throws MIDletstateChangeException

      {

           display.setCurrent(canvas);

      }

    public void pauseApp()

    {

    }

    public void destroyApp(boolean unconditional) throws MIDletstateChangeException

   {

   }

    public void commandAction(Command c,Displayable d)

    {

    }

}

class testCanvas extends Canvas

{

       public void paint(Graphics g)

       {

//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">创建字体对象

              Font font=Font.getFont   

                   (Font.FACE_SYSTEM,Font.STYLE_BOLD,Font.SIZE_MEDIUM);

//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">设定字体对象             

               g.setFont(font);

//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">绘画出文本

              g.drawString("Hello MIDP",getWidth()/2,getHeight  ()/2,Graphics.HCENTER|Graphics.TOP);

              try

              {

//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">绘画出图像

                     Image image=Image.createImage("myimage.png");

                     g.drawImage(image,0,0,Graphics.HCENTER|Graphics.TOP);

              }

              catch(Exception e)

              {

              }    

       }

}

----------------------------MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">运行效果就是在屏幕的中心显示文本”Hello MIDP”MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">。

 

 

 

5.MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">用MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">编程来实现SaveMyMoneyMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">银行应用的不同图形用户界面实例代码:

1)MEs New Roman'">      MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">任务陈述:第一屏幕显示包含名为Balance Enquiry(MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当前余额)MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,Fixed Deposit Enquiry(MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定期储蓄)MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">,Check Status Enquiry(MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">支票状况)MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">项的菜单

MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当用户选择Balance EnquiryMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">应显示进度指示器

MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当用户选择Fixed Deposit EnquiryMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">应显示进度指示器

MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当用户选择Check Status EnquiryMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">应显示打入支票号的TextBox

MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当用户打入支票号后应显示进度指示器

2MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">.代码如下:

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">导入lcduiMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">和MidletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">包

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;

 

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义扩展MidpGUIMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类

public class MidpGUI extends MIDlet impleMEnts CommandListener

{

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">由DisplayMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类创建显示管理器

     Display display;

 

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义窗体对象 

     Form form = new Form("Container Form");

 

// ScreenMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类派生的

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义列表(MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">主菜单)

    List MEnu;

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义文本框 

    TextBox input;

 

// ItemMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的组件 (GaugeMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类表示显示屏幕上的一个条形图)

   Gauge gauge = new Gauge("Your enquiry is being processed", false, 100, 30);

 

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义来自CommandMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">类的命令

   static final Command okCommand = new Command("OK",Command.OK,1);

   static final Command backCommand = new Command("Back",Command.BACK,0);

   static final Command exitCommand = new Command("Exit", Command.STOP,2);

   String currentMEnu; // MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">定义串变量以标识当前的窗体名

 

   public MidpGUI()

  {

  }

/**

 * The startApp() starts the MIDlet, creates a list of items and

 * Uses the EXIT command */

   public void startApp() throws MIDletstateChangeException

  {

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">得到displayMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">对象

     display = Display.getDisplay(this);

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">创建初始菜单并加入项

     MEnu = new List("Enquiries", Choice.IMPLICIT);

     MEnu.append("Current Balance ", null);

     MEnu.append("Fixed Deposit ", null);

     MEnu.append("Check Status ", null);

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">加入ExitMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">命令到窗体

     MEnu.addCommand(exitCommand);

     MEnu.setCommandListener(this);

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">调用mainMEnuMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">方法,设置初始屏幕

     mainMEnu();  

  // MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">加入计量组件到窗体

     form.append(gauge);

}

// mainMEnu MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">方法

void mainMEnu()

{

  display.setCurrent(MEnu);

  currentMEnu = "Main";

}

public void pauseApp() {

  form = null;

  display = null;

  MEnu = null;

  input = null;

  gauge = null;

}

// MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">当MIDletMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">被撤消是调用

public void destroyApp(boolean unconditional) throws MIDletstateChangeException

{

  notifyDestroyed();

}

//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">显示TextBoxMEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">组件

public void showTextBox()

{

  input = new TextBox ("Enter the Check Number:", "", 20, TextField.ANY);

  input.addCommand(backCommand);

  input.addCommand(okCommand);

  input.setCommandListener(this);

  input.setString("");

  display.setCurrent(input);

  currentMEnu = "input";

}

 

//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">显示进度指示器屏幕

public void showForm()

{

  form.addCommand(backCommand);

  form.setCommandListener(this);

  display.setCurrent(form);

  currentMEnu = "form";

}

 

//MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">命令激活

public void commandAction(Command c, Displayable d)

{

  String label = c.getLabel();

  if (label.equals("Exit"))

  {

                try{

     destroyApp(true);}

                catch (Exception e){}

  }

  else if (label.equals("Back"))

  {

        if(currentMEnu.equals("input") || currentMEnu.equals("form"))

                     {

          // go back to MEnu

                        mainMEnu();

            }

 

  }

  else

  {

                if (label.equals("OK"))

                {

                                showForm();

                }

    else

    {

                        List down = (List)display.getCurrent();

            switch(down.getSelectedIndex())

                                     {

                                                      case 0: showForm();break;

                             case 1: showForm();break;

                             case 2: showTextBox();break;

                                     }

                     }

                }

  }

}

MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">注:所有类及方法的说明可以查看J2ME doc.MEs New Roman'; mso-hansi-font-family: 'TiMEs New Roman'">路径为x:WTK104docsapi

 

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值