cdc java_使用Netbeans开发基于CDC的Java ME程序入门

2006年3月份,netbeans.org发布了Mobility Pack 5.0 for CDC,这样使用Netbeans的开发者可以很容易地开发基于CDC的Java ME应用程序了,唯一要做的就是安装Mobility Pack 5.0 for CDC插件。本文介绍如何搭建CDC的开发环境,编写一个简单的入门程序。相比基于CLDC的Java ME开发,CDC的相关技术方兴未艾,还有待我们去挖掘和探索。

目前只有SonyEricsson和Nokia提供了对CDC开发的支持,SonyEricsson推出的SonyEricsson CDC扩展平台可以很好地与Netbeans集成到一起,并且SonyEricsson的M600和P990都支持CDC。本文以SonyEricsson CDC扩展平台为例搭建开发环境,另外Nokia 的S80同样提供了对CDC的支持。

首先我们需要安装以下软件:

1)J2SDK 1.4.2 or JDK 5.0

2)Netbeans IDE 5.0

3)Mobility Pack 5.0 for CDC

4)UIQ SDK 3.0 beta

5)SonyEricsson CDC扩展平台1.0 beta

6)SonyEricsson M600 CDC 扩展包

7)SonyEricsson P990 CDC 扩展包

首先安装JDK,其次是Netbeans IDE 5.0,然后是Mobility Pack 5.0 for CDC和相关的扩展软件。然后我们需要把CDC平台集成到Netbeans之中,从菜单选择工具——Java 平台管理器,然后选择Java ME平台CDC模拟器,如下图所示:

0818b9ca8b590ca3270a3433284dd417.png

然后找到UIQ SDK 3的安装目录,将其添加到Netbeans IDE中。

0818b9ca8b590ca3270a3433284dd417.png

Mobility Pack 5.0 for CDC可以很好地支持CDC开发,包括:

支持CDC开发,包括SonyEricsson CDC扩展平台和Nokia S80平台

项目向导,一步步地指导你编写一个CDC项目

可视化UI设计器,继承自Matisse项目,允许使用拖拽的方式开发AWT的界面。

创建Symbian 程序安装包

提供了一个Symbian MBM编辑器

支持JUnit单元测试框架

下面通过一个范例说明如何使用Netbeans IDE开发CDC相关的项目。新建一个CDC项目,命名为cdcapp如下图所示:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

由于我们让Netbeans自动创建Main类,所以新建项目完成后,在源文件中会出现cdcapp.Main。CDC的项目结构如下所示,与CLDC项目不同的是,项目结构增加了JUnit单元测试,我们可以在CDC的项目中编写单元测试程序。

0818b9ca8b590ca3270a3433284dd417.png

相比MIDP,CDC的上层简表提供了AWT图形库(不包括Swing),因此我们可以开发出界面更加丰富的UI程序,Mobility Pack 5.0 for CDC整合了Matisse,可以借助它用拖拽的方式开发UI程序,这里我们不介绍详细的细节。使用UI设计器可以很快生成一个UI程序,代码如下所示:

/*

* Main.java

*

* Created on 2006年4月19日, 下午3:08

*/

package cdcapp;

/**

*

* @author  ming

*/

public class Main extends java.awt.Frame {

/** Creates new form Main */

public Main() {

initComponents();

}

/** This method is called from within the constructor to

* initialize the form.

* WARNING: Do NOT modify this code. The content of this method is

* always regenerated by the Form Editor.

*/

//

//GEN-BEGIN:initComponents

private void initComponents() {

label1 = new java.awt.Label();

textField1 = new java.awt.TextField();

label2 = new java.awt.Label();

textField2 = new java.awt.TextField();

label3 = new java.awt.Label();

textArea1 = new java.awt.TextArea();

addWindowListener(new java.awt.event.WindowAdapter() {

public void windowClosing(java.awt.event.WindowEvent evt) {

exitForm(evt);

}

});

label1.setText("UserName");

label2.setText("password");

label3.setText("description");

org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);

this.setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)

.add(layout.createSequentialGroup()

.addContainerGap()

.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)

.add(org.jdesktop.layout.GroupLayout.LEADING, textArea1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 196, Short.MAX_VALUE)

.add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup()

.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)

.add(org.jdesktop.layout.GroupLayout.LEADING, label2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.add(org.jdesktop.layout.GroupLayout.LEADING, label1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.add(org.jdesktop.layout.GroupLayout.LEADING, label3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))

.add(16, 16, 16)

.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)

.add(textField2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.add(textField1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 115, Short.MAX_VALUE))))

.addContainerGap(47, Short.MAX_VALUE))

);

layout.setVerticalGroup(

layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)

.add(layout.createSequentialGroup()

.addContainerGap()

.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)

.add(label1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.add(textField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)

.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)

.add(label2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)

.add(textField2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)

.add(label3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)

.add(textArea1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 141, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)

.add(53, 53, 53))

);

pack();

}// //GEN-END:initComponents

/** Exit the Application */

private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm

System.exit(0);

}//GEN-LAST:event_exitForm

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Main().setVisible(true);

}

});

}

// Variables declaration - do not modify//GEN-BEGIN:variables

private java.awt.Label label1;

private java.awt.Label label2;

private java.awt.Label label3;

private java.awt.TextArea textArea1;

private java.awt.TextField textField1;

private java.awt.TextField textField2;

// End of variables declaration//GEN-END:variables

}

以上代码均由Netbeans IDE自动生成。运行项目,可以看到如下的界面:

0818b9ca8b590ca3270a3433284dd417.png

这样我们的第一个CDC程序已经成功了,Mobility Pack 5.0 for CDC还提供了很多功能,这里不一一介绍了。有兴趣可以登录netbeans.org了解更多内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值