Netbeans界面设计的属性窗口是如何实现的?有官方组件php调用com组件吗?

用Netbeans 设计窗口_百度知道
用Netbeans 设计窗口
但是小弟还有几个疑问,已经输入的数字就会显示出来(就像列表一样)。现在用Netbeans设计窗口,而且是java新手有些问题要问),大概的样子已经设计好了, 或者留你们QQ我加你们(这样我可以把我的程序传给你,都是跳着学的,专业是电气工程自动化的,有兴趣的加我QQ吧。这样说可能非常不清楚,没有底子,点保存,点击Com box 创立的那个 窗口.依次下来,所以JAVA现在是完全自学。然后再输入数字我现在在做JAVA的实习,数字就会在 Combo box里保存下来 ,在输入框输入数字后。老板叫我添加设置一个保存按钮,而且时间紧
已经输入的数字就全部会显示出来。最后我点列表框的下拉按钮请问谁知道 combo box(列表框) 的用法,以此类推。 把它设为可编辑,应该要连到一个数据库,然后按保存键保存,我可以在里面输入数字,我卡在这步
提问者采纳
你的保存按钮单击事件下:String data=jTextfield.getText().addItem(data);JComboBox
提问者评价
谢谢了.我自己已经解决,我会加你qq~还有其他问题要你帮忙~~
其他类似问题
netbeans的相关知识
其他2条回答
你得项目是C/S架构的:
你在一个文本框中输入了一个数字,点击保存按钮 会触发一个事件,在触发的这个事件中调用一个方法(就是双击后进入的那个方法里面),把文框中的文本属性取出来(也就是你输入的数值),然后调用保存数据库的方法,保存成功了你可以直接把这个属性添加到combox中(好象combox有个add()方法就可以--很久没用过awt和swing的知识了有点遗忘了,因为你保存成功了,为了减少响应时间,所以你可以直接添加到列表框中就可以显示出来),下次加载地时候,你列表框中的数据会从数据库中取出来,也不会少纪录的。,你点击列表框 同样也触发一个事件,把许要地数据取出来用add方法就可以把添加到combox中去,
如果你用的是B/S架构:你可以用Ajax+Javascript 完成与服务器异步数据的交换.完成相应...
哥们or姐们,我的建议是如果你是初学Java的图形化设计,就先不要用那个NetBeans,它对你学习没多大帮助。可以自己先照着书上打打代码,熟悉一下各个组件的名称及属性方法。等到你对那些已经相当熟了,可以用NetBeans想咋拖就咋拖。
等待您来回答
为您推荐:
下载知道APP
随时随地咨询
出门在外也不愁如何用NetBeans 设计窗口?_百度知道
如何用NetBeans 设计窗口?
想问一下用NetBeans图形化窗口设计界面应该如何开始和基本操作,我用的是NetBeans IDE 6,听说NetBeans有图形化的窗口设计界面.1中文版.5如题
我就是想问一下如何用NetBeans布置窗口,比如通过拖动就可以改变按钮的位置。
提问者采纳
熟悉一下各个组件的名称及属性方法,可以用NetBeans想咋拖就咋拖,我的建议是如果你是初学Java的图形化设计哥们or姐们,它对你学习没多大帮助。等到你对那些已经相当熟了。可以自己先照着书上打打代码,就先不要用那个NetBeans
其他类似问题
netbeans的相关知识
其他2条回答
挺好用的,还有你用Netbeans 6,不是很建议你学Java的图形程序设计.8嘛
官方网站上就有不少的教程啊。你可以到官方网站上看看。有中文翻译的。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁使用Netbeans开发简单的Java数据库应用程序
由于性能(Java对操作系统图形设备的访问,要大量用到封装了C或VC++代码的DLL文件)等原因,与VC++和.NET等相比,图形界面一直没能成为Java开发的主流。尤其在国内,做JSP几乎成了Java的代名词。不过,自从JDK1.5后,Java的性能已经有了巨大的改观,现在1.6下,Swing的性能已经完全不是问题。特别是目前最新版本的开源Netbeans开发工具,更为桌面应用程序开发提供了方便。
NetBeans给人印象最深的应该是Bean绑定。不需要手动编写事件侦听和处理代码,通过双向(读/写)绑定,在目标中所做的更改可以自动地反映在源中,从而使不同的Swing
组件属性保持同步。关于Bean属性绑定的方法,可以参考教程“”的相关内容。下面,我们使用Netbeans开发一个如上图所示的与前面博文“”类似的桌面数据库应用系统。&&&
以下内容,基于NetBeans IDE6.8和JDK1.6开发。
一、创建数据库
本文使用的是MySQL数据库,关于在NetBeans中连接和使用MySQL数据库,请参考一文。
实际上,NetBeans6.8已经可以自动识别本机安装的MySQL数据库,启动NetBeans后只需执行如下数据库创建步骤:
1、在“服务”窗口中,右键单击“MySQL 服务器”节点,然后选择“启动”。
&&& 2、右键单击“MySQL
服务器”节点,然后选择“创建数据库”。
3、如果未启用“创建数据库”项,请选择“连接”。然后,您可能需要输入口令。接下来,便会启用“创建数据库”项。
4、在“数据库名称”中键入 MyBusinessRecords,然后单击“确定”。将会在数据库连接列表中显示一个名为
MyBusinessRecords 的节点。
&&& 5、右键单击
"MyBusinessRecords"
节点,然后选择“连接”。如果出现“连接”对话框,请键入为数据库服务器设置的口令。如果该对话框的“高级”标签打开,请单击“确定”以关闭对话框。
6、向下滚动至刚创建的连接节点。该节点应具有 &图标。
7、右键单击该连接节点,然后选择“执行命令”。
8、复制脚本内容,并将其粘贴到源代码编辑器的“SQL 命令
1”标签中。
9、在源代码编辑器工具栏中,单击“运行 SQL”按钮 () 以运行该脚本。 “输出”窗口将会显示该脚本的输出。
10、再次右键单击该连接节点,然后选择“刷新”。
11、展开该节点,然后展开其“表”子节点。将会看到列出了四个数据库表。
有关数据表的结构及完整性约束等,请参考“”教程内容。
二、创建应用程序框架
&&& 我们将使用 IDE
的“Java 桌面应用程序”项目模板创建应用程序的大部分基本代码,并在此基础上根据我们的需要进行修改。此模板将自动生成:
1、数据库连接。
2、主应用程序框架,其中包含产品数据表。
3、主应用程序类,用于处理基本应用程序生命周期功能,其中包括在会话之间保持窗口状态和资源注入。
4、标准数据库应用程序命令的操作(和相应按钮)。
创建应用程序框架:
1、选择“文件”&“新建项目”。
&&& 2、选择 "Java"
类别,然后选择“Java 桌面应用程序”模板。然后,单击“下一步”。&
&&&&3、在向导的“名称和位置”页中,执行以下步骤:
在“项目名称”字段中键入 DataBaseApplication。
选择数据库应用程序 Shell。
单击下一步。
4、在向导的“主表”页中,执行以下步骤:
选择刚创建的 MyBusinessRecords 数据库的连接。
选择 PRODUCTS 表。
将PRODUCT_ID 条目从“要包含的列”移至“可用列”(该列为自增字段,不可编辑。将不在JTable列表中显示)。
单击“下一步”。
5、在“详细信息选项”页中选择“文本字段”,单击“完成”退出向导。
三、应用程序框架及原理分析
如图所示,Netbeans生成了类似VC++的包括框架视图和应用程序类的文件结构,其中Products.java为对应PRODUCTS数据表的实体类;persistence.xml文件则包含了数据库的连接信息。此时,可以选择“运行”&“运行主项目”以查看主应用程序窗口(如下图所示)。&
应用程序运行图
从图中可以看出,对于PRODUCTS数据表来说,Netbeans已经生成了包括添加、删除、编辑在内的绝大多数的数据处理功能。分析Netbeans所生成persistence.xml及DataBaseView.java文件代码可以看出,Netbeans使用了支持JPA(Java
persistence
API)的Oracle的持久层技术TopLink(对应jar包为toplink-essentials.jar)。从下面的代码片段也可以看出,Netbeans通过管理器EntityManager管理实体对象的持久化:
DataBaseView.java中自动生成的initComponents()方法中的部分代码:
&&& private
javax.persistence.EntityManager entityM
&&& private
javax.persistence.Q
&&& private
java.util.List&databaseapplication.Products&
&&& ......
entityManager = java.beans.Beans.isDesignTime() ? null :
javax.persistence.Persistence
.createEntityManagerFactory(resourceMap.getString("entityManager.persistenceUnit"))
&&&&&&&&&&&&&&&&&
.createEntityManager();
//&从DataBaseView.properties和persistence.xml中获取数据
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//库连接等信息
= java.beans.Beans.isDesignTime() ? null : entityManager
&&&&&&&&&&&&&
.createQuery(resourceMap.getString("query.query")); //
从DataBaseView.properties文件
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//中获取数据查询语句“query.query=SELECT p FROM Products p”
= java.beans.Beans.isDesignTime() ?
java.util.Collections.emptyList() :
&&&&&&&&&&&&&&&&&&&&&&&&
&org.jdesktop.observablecollections.ObservableCollections
&&&&&&&&&&&&&&&&&&&&&&&&&&&
.observableList(query.getResultList());
通过以上语句,Products表记录作为对象列表被提取到list表中,并被实体管理器所管理,通过事务的提交、回滚等执行对数据操作的保存或取消。
NetBeans通过Bean属性绑定来执行对数据的编辑操作,如下图所示:
由图中可以看出,JTable与List&databaseapplication.Products&
list对象列表绑定,JTable的各列与Products对象的属性绑定,绑定方式为始终同步,也就是在前面“应用程序运行图”界面中,无论是选择一条记录,在记录字段的文本编辑框中进行修改,还是在表格中直接修改,修改结果会同时体现在list对象表(包括实体对象管理器缓存)中,在点击save按钮后,通过调用按钮方法的entityManager.getTransaction().commit()语句提交并保存修改;而在添加一条记录时,New按钮的方法代码如下:
databaseapplication.Products p = new
databaseapplication.Products();//空白对象
entityManager.persist(p);//缓存
list.add(p);//添加到列表
int row = list.size()-1;
masterTable.setRowSelectionInterval(row, row);//选择当前新添加行
masterTable.scrollRectToVisible(masterTable.getCellRect(row, 0,
setSaveNeeded(true);//需要保存才生效,save按钮可用
由于字段编辑文本框的text属性被绑定到如${selectedElement.prodType}(绑定源为JTable),所以文本框的输入会直接反映到列表对象,并可以通过save按钮方法保存新添加并编辑的记录。当然,对记录的编辑修改也可以在表格行直接进行。如上图所示,可以设置表格列(字段)是否可编辑,系统会自动生成如下代码:
&&& ......
org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding
&&&&&&&jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${prodType}"));
&&&&columnBinding.setColumnName("Prod
&&&&columnBinding.setColumnClass(String.class);
&&&&columnBinding.setEditable(false);
&&&&......
四、改进应用程序
从前面的分析可以看出,对于在程序创建向导中选择的数据表Products,Netbeans几乎完成了我们需要的所有代码,但是对于大多数应用程序来说,绝不会仅仅针对一个或两个数据表进行操作。举例来说,如果需要通过选择不同的菜单对不同的表进行操作,比如增加对COUNTRIES表的操作。
我们可以考虑在保留程序框架的前提下修改程序,以最大限度的利用Netbeans所提供的便利。在当前程序中,JTable被固定的与Products表绑定,可以通过取消该固定绑定,在选择点击不同菜单时再进行动态绑定。
&&& 1、取消固定绑定
仔细观察DataBaseView.java代码,对表格的绑定操作是在initComponents()方法中进行的,而该方法中的代码是不能修改的,界面设计中对组件的修改最终会体现到该方法的代码中。为此,我们先把该方法的完整代码复制保存到别处,然后在设计界面中右键点击JTable组件,选择“表内容”--&列,逐行删除每一列的绑定设置(如果没有该步操作,可能会抛出异常);选择"绑定"--&elements--&绑定源,选择绑定源为“未绑定”,此时,如果想恢复原来的绑定,只要把绑定源重新设置为list列表即可。
删除设计界面中JTable下面的字段编辑框等,保留按钮备用。调整JTable组件与按钮位置,使布局合理。这时运行程序,会发现bindingGroup定义被自动删除了,重新定义该变量:
//在去掉初始程序的mastertable绑定后,下面定义被自动删除。在此重新定义。
&&& private
org.jdesktop.beansbinding.BindingGroup bindingG
这时,比较当前initComponents()方法内容与你保存的代码,所缺少的代码行就是有关表格绑定的。新建一个表格绑定方法BindTable(),把所缺代码复制到方法中。
在菜单条中添加菜单“Countries”(右键点击新加菜单,选择“编辑文本”,输入Countries),并为它添加菜单项“Display
Countries”;修改“File”菜单的显示文本为“Products”,并添加菜单项“Display
Products”。目的就是点击不同菜单时将JTable绑定到不同的数据表,以显示和操作不同的数据。为此,在程序中定义一个变量,用以指明操作那个数据表:private&String
如图所示,为新添加的两个菜单项分别添加action属性操作DisplayProducts()和DisplayCountries(),系统将自动生成如下代码:
&&& public void
DisplayCountries() {
&&&&&&&&//在自动生成的方法中添加如下语句
tableName = "Countries";
BindTable();
&&& public void
DisplayProducts() {
//在自动生成的方法中添加如下语句
tableName="Products";
BindTable();
操作内容很简单,就是为变量tableName赋值。在动态绑定方法BindTable()中,将根据不同的变量值,执行不同的绑定操作。
为了显示和操作Countries数据表,右键点击项目名,选择新建--&通过数据库添加实体类,创建Countries实体类文件。
五、修改后的程序代码
下面是DataBaseView.java修改后的程序代码(只列出修改部分):
&&& public
DataBaseView(SingleFrameApplication app) {
super(app);
initComponents();
//删除了初始程序的表格绑定,调用以下方法重新绑定
tableName="Products";
BindTable();
// status bar initialization - message timeout, idle icon and busy
animation, etc
ResourceMap resourceMap = getResourceMap();
int messageTimeout =
resourceMap.getInteger("StatusBar.messageTimeout");
messageTimer = new Timer(messageTimeout, new ActionListener()
&&&&&&&&&&&
public void actionPerformed(ActionEvent e) {
&&&&&&&&&&&&&&&
statusMessageLabel.setText("");
&&&&&&&&&&&
messageTimer.setRepeats(false);
int busyAnimationRate =
resourceMap.getInteger("StatusBar.busyAnimationRate");
for (int i = 0; i & busyIcons. i++) {
&&&&&&&&&&&
busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i +
busyIconTimer = new Timer(busyAnimationRate, new ActionListener()
&&&&&&&&&&&
public void actionPerformed(ActionEvent e) {
&&&&&&&&&&&&&&&
busyIconIndex = (busyIconIndex + 1) % busyIcons.
&&&&&&&&&&&&&&&
statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
&&&&&&&&&&&
idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);
// connecting action tasks to status bar via TaskMonitor
TaskMonitor taskMonitor = new
TaskMonitor(getApplication().getContext());
taskMonitor.addPropertyChangeListener(new
java.beans.PropertyChangeListener() {
&&&&&&&&&&&
public void propertyChange(java.beans.PropertyChangeEvent evt)
&&&&&&&&&&&&&&&
String propertyName = evt.getPropertyName();
&&&&&&&&&&&&&&&
if ("started".equals(propertyName)) {
&&&&&&&&&&&&&&&&&&&
if (!busyIconTimer.isRunning()) {
&&&&&&&&&&&&&&&&&&&&&&&
statusAnimationLabel.setIcon(busyIcons[0]);
&&&&&&&&&&&&&&&&&&&&&&&
busyIconIndex = 0;
&&&&&&&&&&&&&&&&&&&&&&&
busyIconTimer.start();
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
progressBar.setVisible(true);
&&&&&&&&&&&&&&&&&&&
progressBar.setIndeterminate(true);
&&&&&&&&&&&&&&&
} else if ("done".equals(propertyName)) {
&&&&&&&&&&&&&&&&&&&
busyIconTimer.stop();
&&&&&&&&&&&&&&&&&&&
statusAnimationLabel.setIcon(idleIcon);
&&&&&&&&&&&&&&&&&&&
progressBar.setVisible(false);
&&&&&&&&&&&&&&&&&&&
progressBar.setValue(0);
&&&&&&&&&&&&&&&
} else if ("message".equals(propertyName)) {
&&&&&&&&&&&&&&&&&&&
String text = (String)(evt.getNewValue());
&&&&&&&&&&&&&&&&&&&
statusMessageLabel.setText((text == null) ? "" : text);
&&&&&&&&&&&&&&&&&&&
messageTimer.restart();
&&&&&&&&&&&&&&&
} else if ("progress".equals(propertyName)) {
&&&&&&&&&&&&&&&&&&&
int value = (Integer)(evt.getNewValue());
&&&&&&&&&&&&&&&&&&&
progressBar.setVisible(true);
&&&&&&&&&&&&&&&&&&&
progressBar.setIndeterminate(false);
&&&&&&&&&&&&&&&&&&&
progressBar.setValue(value);
&&&&&&&&&&&&&&&
&&&&&&&&&&&
// have a transaction started
entityManager.getTransaction().begin();
&&& ......
&&& private void
BindTable(){
// 在选择显示其它表格时,如果对原来表格的修改未保存就回滚事务
if(this.isSaveNeeded())
&&&&&&&&&&&
refresh().run();
//在去掉初始程序的mastertable绑定后,initComponents()中的下面语句被自动删除。
//在此重新定义。
bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
// tracking changes to save
bindingGroup.addBindingListener(new AbstractBindingListener()
&&&&&&&&&&&
&&&&&&&&&&&
public void targetChanged(Binding binding, PropertyStateEvent
&&&&&&&&&&&&&&&
// save action observes saveNeeded property
&&&&&&&&&&&&&&&
setSaveNeeded(true);
&&&&&&&&&&&
//因为要重新绑定数据,所以要重新定义表格
masterTable = new javax.swing.JTable();
masterTable.setName("masterTable");
ResourceMap resourceMap = getResourceMap();
//重新设置表格行选择监听
// tracking table selection
masterTable.getSelectionModel().addListSelectionListener(
&&&&&&&&&&&
new ListSelectionListener() {
&&&&&&&&&&&&&&&
public void valueChanged(ListSelectionEvent e) {
&&&&&&&&&&&&&&&&&&&
firePropertyChange("recordSelected", !isRecordSelected(),
isRecordSelected());
&&&&&&&&&&&&&&&
&&&&&&&&&&&
if(tableName == "Products"){
query = java.beans.Beans.isDesignTime() ? null : entityManager
&&&&&&&&&&&&&&
.createQuery(resourceMap.getString("query.query")); // NOI18N
list = java.beans.Beans.isDesignTime() ?
java.util.Collections.emptyList() :
&&&&&&&&&&&&&&
org.jdesktop.observablecollections.ObservableCollections
&&&&&&&&&&&&&&&&&
.observableList(query.getResultList());
org.jdesktop.swingbinding.JTableBinding jTableBinding =
&&&&&&&&&&&&&&&&
org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop
&&&&&&&&&&&&&&&&&&
.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, list,
masterTable);
org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding
&&&&&&&&&&&&&&&
jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty
&&&&&&&&&&&&&&&&&
.create("${prodType}"));
columnBinding.setColumnName("Prod Type");
columnBinding.setColumnClass(String.class);
columnBinding.setEditable(false);
columnBinding =
jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty
&&&&&&&&&&&&&&
.create("${brand}"));
columnBinding.setColumnName("Brand");
columnBinding.setColumnClass(String.class);
columnBinding.setEditable(false);
columnBinding =
jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty
&&&&&&&&&&&&&
.create("${model}"));
columnBinding.setColumnName("Model");
columnBinding.setColumnClass(String.class);
columnBinding.setEditable(false);
columnBinding =
jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty
&&&&&&&&&&&&&&
.create("${price}"));
columnBinding.setColumnName("Price");
columnBinding.setColumnClass(Long.class);
columnBinding.setEditable(false);
bindingGroup.addBinding(jTableBinding);
jTableBinding.bind();
//因为masterTable被重新定义,所以下面语句必须重新调用
masterScrollPane.setViewportView(masterTable);
//在去掉初始程序的mastertable绑定后,DataView.properties文件中已没有表头内容,
//需要修改表头设置语句
//masterTable.getColumnModel().getColumn(0).setHeaderValue(resourceMap
&&&&&&&&//.getString("masterTable.columnModel.title0"));
masterTable.getColumnModel().getColumn(0).setHeaderValue("Prod
Type"); // NOI18N
masterTable.getColumnModel().getColumn(1).setHeaderValue("Brand");
masterTable.getColumnModel().getColumn(2).setHeaderValue("Model");
masterTable.getColumnModel().getColumn(3).setHeaderValue("Price");
bindingGroup.bind();
if(tableName == "Countries"){
//因为要重新绑定数据,所以要重新定义表格
query = java.beans.Beans.isDesignTime() ? null :
entityManager.createQuery("SELECT c FROM
&&&&&&&&&&&&&&&
Countries c"); // NOI18N
list = java.beans.Beans.isDesignTime() ?
java.util.Collections.emptyList() :
&&&&&&&&&&&&&&&
org.jdesktop.observablecollections.ObservableCollections
&&&&&&&&&&&&&&&&&&&&&
.observableList(query.getResultList());
org.jdesktop.swingbinding.JTableBinding jTableBinding
&&&&&&&&&&&&=
org.jdesktop.swingbinding.SwingBindings.createJTableBinding
&&&&&&&&&&&
(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE,
list, masterTable);
org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding
= jTableBinding
&&&&&&&&&&&&&
.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${countryId}"));
columnBinding.setColumnName("Country ID");
columnBinding.setColumnClass(String.class);
columnBinding.setEditable(false);
columnBinding =
jTableBinding.addColumnBinding(org.jdesktop.beansbinding
&&&&&&&&&&&&&&&&&&&&&&&
.ELProperty.create("${country}"));
columnBinding.setColumnName("Country");
columnBinding.setColumnClass(String.class);
columnBinding.setEditable(false);
bindingGroup.addBinding(jTableBinding);
jTableBinding.bind();
//因为masterTable被重新定义,所以下面语句必须重新调用
masterScrollPane.setViewportView(masterTable);
masterTable.getColumnModel().getColumn(0).setHeaderValue("Country
ID"); // NOI18N
masterTable.getColumnModel().getColumn(1).setHeaderValue("Country");
bindingGroup.bind();
&&& public void
DisplayCountries() {
tableName="Countries";
BindTable();
&&& public void
DisplayProducts() {
tableName="Products";
BindTable();
//在去掉初始程序的mastertable绑定后,下面定义被自动删除。在此重新定义。
&&& private
org.jdesktop.beansbinding.BindingGroup bindingG
//指明操作那个数据表
&&& private
String tableN
其他代码,包括菜单、按钮处理方法保持不变,仍可正常使用。后面还会继续改进,包括在点击new按钮时打开新建对话框添加和编辑新纪录,以及对按钮等的修改(未完待续)。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。NetBeans权威指南 目录
NetBeans权威指南 目录
目录&&&& 第一篇& 标准开发环境第1章& NetBeans的安装和开发环境配置&2NetBeans是Sun公司使用Java语言开发的一个开源工具,主要包括IDE(集成开发环境)和Platform(平台)两个主要部分。其中,集成开发环境是在平台基础上实现的,并且平台本身也开放给开发人员直接使用。本书的大部分内容介绍NetBeans集成开发环境的使用方法,只在第5篇中介绍NetBeans平台的开发使用方法。利用NetBeans集成开发环境可以开发标准的Java应用程序、Web程序、手机程序、C++程序等。本章首先介绍NetBeans集成开发环境的安装和基本结构,还有如何更新NetBeans等内容。1.1& 下载和安装NetBeans&21.1.1& NetBeans 6.0新功能及改进&21.1.2& NetBeans对系统的最低要求&51.1.3& 下载NetBeans 6.0&61.1.4& 安装NetBeans 6.0全功能包&71.2& NetBeans集成开发环境&91.3& NetBeans菜单和工具栏&101.4& NetBeans窗口&121.4.1 “项目”窗口&121.4.2 “文件”窗口&131.4.3 “服务”窗口&141.4.4 “输出”窗口&141.4.5 “导航”窗口&151.4.6 “组件面板”窗口&161.4.7 “属性”窗口&171.4.8 “检查器”窗口&171.4.9 “任务列表”窗口&181.4.10 “收藏夹”窗口&191.5& 源代码编辑器&201.5.1& 快速编写代码&201.5.2& 代码模板&211.5.3& 格式化Java代码&211.5.4& 代码跳转&221.6& 更新NetBeans&231.7& 配置NetBeans开发环境&231.7.1& 常规配置&241.7.2& 编辑器的常规选项&241.7.3& 编辑器的缩排选项&251.7.4& 定制代码模板&271.7.5& 字体和颜色&271.8& 小结&28第2章& 通过NetBeans开发Java标准应用程序&29通过NetBeans集成开发环境可以快速地创建Java标准应用程序,利用NetBeans提供的可视化编程界面可以为应用程序添加/编辑界面组件、编译运行项目并最后发布项目。本章将讨论如何在NetBeans集成开发环境中完成这些基本的任务,快速开发Java标准应用程序。本章的讲解将以一个实际项目的开发过程为基础,一步一步地介绍Java标准项目在NetBeans集成开发环境中的开发实现。2.1& 创建Java标准应用程序&292.1.1& 创建Java标准应用程序项目&292.1.2& 打开和关闭项目&322.1.3& 导入项目&322.1.4& 重命名项目&362.1.5& 项目的复制、移动和删除&372.1.6& 创建Java主类&382.1.7& 创建Java包&392.2& 项目运行与项目配置&402.2.1& 项目运行&402.2.2& 项目配置&412.3& 创建标准GUI应用程序&442.3.1& 包含三个菜单的应用程序&442.3.2& 多文档界面应用程序&452.3.3 “确定”/“取消”对话框&462.4& 创建GUI窗体&482.4.1& 对话框窗体&492.4.2& 框架窗体&492.4.3& 面板窗体&502.5& 添加界面组件&512.5.1& GUI Builder&512.5.2& 添加/编辑组件&522.5.3& 修改组件属性&542.5.4& 设置组件对齐还有等宽/等高&572.5.5& 布局管理器和GridBagLayout布局&582.6& 使用Javadoc&622.6.1& 设置Javadoc生成参数&622.6.2& 生成Javadoc&632.7& 程序的打包与发布&632.7.1& 设置包装选项&632.7.2& 项目的生成&642.8& 小结&64第3章& 在NetBeans中调试应用程序&65在开发程序的时候,可能会出现各种错误,虽然编译器会帮助开发人员找到一些语法错误,但是对于一些逻辑错误或者算法上的错误,就只能利用NetBeans的调试技术进行分析和解决了。本章将讨论NetBeans如何调试应用程序、进行单步跟踪、查看本地变量等内容。3.1& 在NetBeans中调试应用程序&653.2& 设置和管理断点&663.2.1& 断点类型&663.2.2& 添加行断点&673.2.3& 添加类断点&673.2.4& 添加方法断点&683.2.5& 添加异常断点&693.2.6& 添加线程断点&693.2.7& 添加字段断点&703.2.8& 断点的管理&703.3& 单步执行&713.4& 查看变量和表达式的值&723.4.1& 在代码编辑器中直接查看&723.4.2& 使用“监视”窗口查看&733.4.3& 使用“局部变量”窗口查看&733.5& 计算表达式&743.6& 在调试模式修改代码&753.7& NetBeans的调试窗口&753.7.1 “装入的类”窗口&753.7.2 “调用栈”窗口&763.7.3 “线程”窗口&763.7.4 “会话”窗口&773.7.5 “源”窗口&773.8& 小结&78第4章& 代码重构&79在程序开发中经常需要修改代码,例如修改变量名。如果一个变量在不同文件的不同地方被使用,那么每个地方都需要修改。进行手工修改很容易发生错误,NetBeans提供了代码重构的功能,可以帮助开发人员迅速地修改代码而不发生错误。4.1& 重命名&794.1.1& 重命名项目&794.1.2 重命名其他元素&804.2& 引入方法&824.3& 更改方法的参数&834.4& 封装字段&844.5& 移动类&864.5.1& 使用复制/粘贴法移动类&864.5.2& 重构的移动类命令&864.6& 从内层移至外层&874.7& 将匿名类转换为外部类&884.8& 提取接口&894.9& 小结&91第5章& JavaBean开发&92代码复用一直是开发人员追求的一个目标,组件技术是实现代码复用的一个很好途径。目前流行的组件技术有COM、DCOM、CORBA等。JavaBean是利用Java实现的组件技术,具有Java语言所有的特点,如易用性还有平台无关性。JavaBean的设计目标就是一次性编写、任何地方执行、任何地方重用。本章主要介绍如何在NetBeans中开发和利用JavaBean组件。首先介绍JavaBean的基本知识,然后通过实例介绍如何开发一个简单的JavaBean,还有如何使用这个JavaBean组件。接着,逐步深入给出可视化JavaBean的开发方法,如何为JavaBean添加属性等内容。在学习本章前,建议读者先认真学习一下JavaBean开发的相关知识。5.1& JavaBean概述&925.2& 如何创建一个简单的JavaBean&935.2.1& 创建一个简单的JavaBean&935.2.2& 如何使用JavaBean&955.3& 创建和使用可视化的JavaBean组件&965.3.1& 创建可视化的JavaBean组件&965.3.2& 使用可视化的JavaBean组件&1005.4& JavaBean的属性&& 创建简单属性&& Indexed属性&& Bound属性&1035.5& 创建简单属性编辑器&1035.6& 在“属性”窗口中实现下拉列表框&& 创建MyShape组件&& 创建下拉列表框形式的属性编辑器&& 将属性和属性编辑器关联&1085.7& 绘制属性编辑器&1095.8& 自定义属性编辑器&1105.9& 小结&113第6章& 管理和使用服务器&114服务器是供应用程序运行的计算机。通过安装服务器软件并将计算机连接至互联网,可以使任何计算机成为服务器。在NetBeans集成开发环境中支持多个服务器,例如Java EE服务器、Web服务器等。本章将讨论如何在NetBeans中注册和管理一些常用的服务器,例如GlassFish、Sun Java Application Server、Tomcat等。6.1& Tomcat服务器&& 启动和停止服务器&& 编辑Tomcat配置文件&& 定制Tomcat服务器&& Tomcat的管理控制台&& 注册外部的Tomcat服务器&1196.2& GlassFish和Sun Java应用程序服务器&& 安装Sun Java应用程序服务器&& 注册Sun Java应用程序服务器&& 修改Sun Java Application Server的JVM属性&& 管理GlassFish & Sun Java Application Server&1266.3& JBoss应用程序服务器&& JBoss服务器的注册&& JBoss服务器的管理控制台&1296.4& 小结&129第7章& 数据库的管理与开发&130NetBeans集成开发环境提供了对数据库开发的支持,用户可以执行SQL语句或者可视化地对数据库进行操作。NetBeans对目前大多数的主流数据库都提供了支持,例如SQL Sever数据库、Access数据库、MySQL数据库、Java DB数据库等。本章按照使用的顺序,介绍了数据库驱动程序的配置、数据库的连接、数据表的操作还有如何执行SQL语句。7.1& 数据库及驱动管理&1307.2& 创建Java DB数据库&1317.3& 连接数据库&& 连接Java DB数据库&& Pointbase数据库的注册和连接&& 连接MySQL数据库&1347.4& 在NetBeans中执行SQL语句&1367.5& 数据表的基本操作&& 创建数据表&& 浏览表的结构&& 添加/删除列&& 抓取结构还有重新创建表&1407.6& 视图操作&1417.7& 从数据库重新捕获结构&1427.8& 小结&144第二篇& NetBeans高级应用第8章& JUnit测试&146众所周知,测试在整个软件生命周期中占有很重要的地位。单元测试又称为模块测试,是对一个模块或者一个单元进行的测试,因此称为单元测试。NetBeans提供了对程序进行单元测试的支持,用户可以通过JUnit快速完成程序单元的测试。本章将首先介绍一些JUnit的基础知识,然后介绍如何进行单元测试。8.1& JUnit测试概述&1468.2& 创建测试实例&& 创建空测试&& 进行现有类的测试&1488.3& 测试套件&1518.4& 配置JUnit&1528.5& 小结&153第9章& 性能分析&154在开发应用程序时,有时需要知道代码的执行效率如何还有内存的占用情况,以便于对代码进行优化、提高应用程序的性能。因此,在对代码进行优化前,对代码进行性能分析就显示十分必要。NetBeans提供了一个优秀的代码分析工具Profiler,本章将详细地介绍如何利用这个工具进行性能分析、监视应用程序的运行等。9.1& Profiler概述&& 安装Profiler工具&& 校准Profiler&& Profiler控制面板&1559.2& 监视应用程序的运行&& 启动程序监视&& VM遥测概览& “线程”窗口&& 查看监控状态和基本监控数据&1609.3& 进行CPU性能分析&& 启动性能分析&& 查看快照&& 查看性能分析结果&& 查看性能分析状态和基本数据&& 指定根方法&1669.4& 使用分析点&& 创建重置结果类型分析点&& 创建秒表类型分析点&& 创建生成快照类型分析点&& 创建定时生成快照类型分析点&& 创建触发生成快照类型分析点&& 使用分析点&1719.5& 分析内存的使用&& 启动内存分析&& 内存快照&1729.6& 自定义性能分析&& 创建定制的性能分析配置&& 自定义监视分析参数&& 自定义CPU分析参数&& 自定义内存分析参数&1779.7& 将Profiler连接到运行的应用程序&& 使用连接向导进行直接连接&& 进行动态连接&1819.8& 配置Profiler选项&1819.9& 小结&183第10章& 在NetBeans中进行版本控制&184CVS(Concurrent Version System)和Subversion都是非常优秀的版本控制系统,它可以在软件开发过程中记录文件的变更细节还有存储软件开发过程中的各种版本。版本控制系统允很多名开发人员同时编辑同一文件而不会丢失数据。每名开发人员都拥有该文件的副本,最后将所有的修改合并到一起成为最终的结果。CVS和Subversion都基于C/S,可以运行在UNIX、Linux还有Windows平台之上。CVS(Subversion)的服务器端存有一个源代码库,源代码库中保存众多不同的项目。客户端通过和服务器端建立连接,将源代码下载到本地计算机上,开发人员就可以在本地计算机上进行添加、修改、删除等操作,最后提交到服务器。NetBeans内置对CVS和Subversion的支持,NetBeans可以作为CVS系统的客户端从而对开发进行版本控制。本章以CVS为主讲解如何在NetBeans集成开发环境中进行版本控制,在本章的最后部分介绍如何在NetBeans中使用Subversion还有其他的版本控制系统。10.1& CVS基本原理&18410.2& 搭建CVS服务器&18510.3& 签入和签出源&& 签入&& 签出&& 通过CVS浏览NetBeans源代码&& 查看文件状态信息&18810.4& 显示、比较还有还原更改&& 显示更改&& 比较更改&& 还原更改&19110.5& 提交和更新文件&& 提交文件&& 更新文件&& 解决冲突&19210.6& 查看文件历史版本记录&19310.7& 使用标记和分支&& 使用标记&& 使用分支&19510.8& 使用Subversion&& Subversion简介&& 下载并安装Subversion客户端&& 在NetBeans IDE中设置Subversion&19810.9& 安装Mercurial&19910.10& 小结&200第11章& 基础Web应用程序开发&201Web应用程序是为互联网编写的应用程序,很多语言都支持Web程序的开发,例如Perl、ASP.NET、Java等。NetBeans集成开发环境提供了对Web程序开发的良好支持,可以创建空Web应用程序项目、快速编写HTML页面、建立JSP文件、开发Servlet、使用JavaServer Faces和Struts框架、开发Applet小程序、创建和使用标记等。本章首先介绍如何开发一个可以在网页上运行的小程序,然后介绍如何开发一个包含HTML页面和JSP页面的Web应用程序。在学习本章时,假定读者已经具有了编写JSP程序的能力,这里着重介绍如何在NetBeans集成开发环境中使用这些技术进行开发。对于一些初学者,建议首先学习必要的知识。另外,为了便于初学者学习,对于讲到的一些技术,书中都进行了必要的解释,这样可以保证读者能够顺利完成本章的学习。11.1& 开发Applet&& 创建小程序&& 运行小程序&& 在JDK 1.5中运行小程序&20811.2& 创建一个简单的Web应用程序&& 创建Web应用程序项目&& 运行Web应用程序&& 调试Web应用程序&& 生成Web应用程序&& 部署Web应用程序&21511.3& 在页面中使用HTML组件&& 创建HTML和XHTML页面&& 创建JSP页面&& HTML组件面板&& 使用HTML表&& 使用HTML有序列表组件&& 使用HTML无序列表组件&& 使用HTML图像组件&& 使用HTML链接组件&& 使用HTML元数据组件&22511.4& 在页面中使用HTML表单组件&& 使用HTML表单&& 使用HTML按钮&& 使用HTML文本输入&& 使用HTML多行输入&& 使用HTML下拉列表&& 使用HTML复选框&& 使用HTML单选按钮&& 使用HTML选择文件&23511.5& 基于JSP的开发实例――登录模块的实现&& 登录模块实现流程&& 设计并创建数据库&& 创建logincheck.jsp文件&& 创建index.jsp文件&& 创建welcome.jsp文件&& 创建error.jsp文件&& 运行项目&24411.6& 在JSP页面中使用JavaBean&& 在JSP页面中声明JavaBean&& 读取Bean属性&& 设置Bean属性&& 基于JSP + JavaBean的开发实例――登录模块的实现&24711.7& 小结&248第12章& 高级Web应用程序开发&249上一章介绍了如何使用Applet小程序还有JSP开发Web应用程序。本章将介绍如何开发Servlet、使用标记等内容,还有如何进行网络监视、项目的打包部署、项目配置等。在学习本章时,假定读者已经具有了编写Servlet等技术的能力,这里主要着重介绍如何在NetBeans集成开发环境中使用这些技术进行开发。对于一些初学者,建议首先学习必要的知识。另外,为了便于初学者学习,对于讲到的一些技术,书中都作了必要的解释,这样可以保证读者能够顺利地完成本章的学习。12.1& 开发Servlet&& 在NetBeans中创建Servlet&& Servlet使用实例――登录模块&25212.2& 使用过滤器&& NetBeans中创建过滤器的方法&& 过滤器使用实例――为登录模块提供安全保护&25812.3& 创建侦听程序&26112.4& 使用标准标记库&& JTSL概述还有NetBeans对标准标记库的支持&& 使用核心库标记&& 使用数据库处理标记&& JSTL开发实例――使用JSTL实现登录模块&27012.5& 自定义标记开发&& 通过标记文件实现标记开发&& 通过标记处理程序实现标记开发&27412.6& 使用HTTP监视器&& 打开HTTP监视器&& 分析会话数据&27812.7& Web应用程序项目配置&& 配置项目源和Web文件夹&& 为项目添加新框架&& 指定项目的类路径&& 设置编译选项&& 设置打包选项&& 进行运行/部署配置&28212.8& 配置context.xml描述符&28312.9& 配置web.xml描述符&& 常规&& 上下文参数&& 应用程序侦听程序&& Servlet&& 过滤器&& 欢迎文件&& 错误页面&& JSP属性组&& 环境条目&& 资源引用&& 资源环境引用&& EJB引用&& 消息目标引用&& 登录配置&& 安全角色&& 安全约束&29412.10& 配置sun-web.xml描述符&& 常规&& 消息&29512.11& 小结&296第13章& 在NetBeans中开发Struts程序&297Struts项目是由Apache Software Foundation发起的开源项目,它在Java服务器端实现了MVC(Model-View-Controller)设计模式。Struts为使用MVC体系编写应用提供了一个架构,因而目前非常流行。13.1& Struts概述&& MVC设计模式&& Web应用程序的MVC实现模式&& Struts框架结构及原理&29913.2& 创建基于Struts的项目&30013.3& 使用Struts标记创建JSP文件&30013.4& 创建ActionForm Bean&30213.5& 创建Action操作&30413.6& 小结&308第14章& 进行可视化的Web开发&309在前面章节中介绍了一般的Web应用程序的开发,还有Struts框架的使用方法。本章将介绍目前比较流行的一种可视化的开发技术,即使用JSF(JavaServer Faces)组件进行可视化的Web开发。JSF是业界流行的一种开发Web应用程序的框架,利用该框架可以像设计Windows应用程序一样,在Web页面中添加组件并处理用户事件。说得形象一些,利用JSF技术,用户可以像开发ASP.NET应用程序一样进行基于Java的Web应用程序开发。14.1& 可视化的Web开发概述&& JavaServer Faces开发概述&& 安装Visual Web开发包&31014.2& 创建简单的Visual Web应用程序&& 创建可视化的Web应用程序项目&& 可视化的Web应用程序开发环境&& 进行可视化的页面编辑&31214.3& 进行页面导航&& 简单的页面导航&& 通过下拉列表框进行页面导航&31614.4& 使用页面片段&31714.5& 使用JSF实现登录模块&& 实现登录失败的界面&& 实现登录成功的界面&& 登录界面还有身份验证&32014.6& 进行AJAX开发&& 下载并导入AJAX及其组件&& AJAX开发实例:在页面中使用日历&32314.7& 小结&324第15章& 企业级应用程序开发&325在前面的章节中介绍了使用NetBeans开发桌面应用程序、Web应用程序、可视化的Web应用程序等。从本章开始将介绍企业级应用程序的开发,及其相关技术。本章将首先介绍一个简单的企业级应用程序的开发方法,以便于读者掌握程序开发的大致步骤。然后在此基础上进一步扩展,介绍EJB模块和持久性API的开发方法。最后,简单给出了几种Sun资源的创建方法。15.1& 创建一个简单的企业级应用程序&& 创建企业应用程序项目&& 实现EJB 3.0 Bean&& 在Web应用程序中调用EJB&& 企业应用程序的打包和部署&33215.2& EJB模块开发&& Enterprise Bean概述&& 开发实体Bean&& 开发驱动消息Bean&& 自动生成发送JMS消息的代码&34315.3& 使用持久性API&& 创建持久性单元&& 创建实体Bean&34615.4& 创建GlassFish资源&& JDBC连接池资源&& JDBC资源&& JMS资源&& JavaMail会话资源&35215.5& 小结&353第16章& 基于XML的开发&354XML是业界进行数据交换和传输的一种标准协议。NetBeans的项目配置和编译文件,例如build.xml、build.xml、build-impl.xml等都是XML文件。NetBeans提供了对XML开发的支持,通过可视化的XML架构设计器,可以快速地创建XML架构。本章的重点是如何通过可视化的XML架构设计器编写XML架构,还有如何开发和编辑XML文档。16.1& NetBeans对XML开发的支持&35416.2& 创建一个样例XML架构&35516.3& 使用可视化的XSD设计器& “构架”标签页& “设计”标签页& “源”标签页&& 进行查找&& 添加XML架构组件&& 查找XML架构组件的使用实例&36016.4& 创建和编辑DTD实体&& 通过向导创建DTD实体&& 检查DTD文档&& 生成CSS和文档&36216.5& 创建和编辑XML文档&& 通过向导创建XML文档&& 查看XML文档&& 检查XML文档&& 验证XML文档&& 根据XML文档生成DTD&36616.6& 创建可扩展样式表&& 通过向导创建XSL式样表&& 转换XSL式样表&36916.7& 创建OASIS XML目录文件和XML解析实体&37016.8& 创建层叠样式表&& 层叠样式表编辑器的“字体”面板&& 层叠样式表编辑器的“背景”面板&& 层叠样式表编辑器的“文本块”面板&& 层叠样式表编辑器的“边框”面板&& 层叠样式表编辑器的“边距”面板&& 层叠样式表编辑器的“位置”面板&37616.9& 小结&377第17章& UML建模&378统一建模语言UML(Unified Modeling Language)是为团队开发提供的标准通用的设计语言,也就是像建筑行业使用的建筑图纸一样。目前,UML已经获得了业界的广泛认同,越来越多的系统都使用UML来进行设计和开发。NetBeans提供了对UML的全面支持,利用NetBeans UML建模模块,可以创建8种类型的UML图:活动图、类图、协作图、组件图、部署图、序列图、状态图和用例图,并可以进行正向工程和逆向工程。本章将主要介绍如何在NetBeans中进行UML建模。对于不需要学习UML建模的读者,可以越过本章继续向后学习。本章相对独立,跳过本章不会对后续的学习产生影响。在学习本章前,建议读者首先学习UML的基本知识。本章着重介绍NetBeans的使用方法,而不再对UML的一些基础知识进行阐述。17.1& UML建模支持模块&& UML建模模块的功能&& 下载和安装UML建模模块&37917.2& 创建UML项目还有UML建模环境&& 创建UML项目& “文档”窗口& “属性”窗口&& UML建模组件面板&38317.3& UML图编辑器&& 添加图元素&& 复制、剪切和粘贴元素&& 删除元素&& 锁定编辑&& 选择所有类似的元素&& 调整元素大小&& 堆叠图元素&& 删除所有拐点&38617.4& UML图形的缩放&& 放大和缩小&& 缩放到适当大小&& 基于选择区域缩放&& 交互缩放&38817.5& 图布局&& 分层结构布局&& 对称结构布局&& 正交结构布局&& 增量式布局&& 指定布局属性&39017.6& UML建模实例&& 创建用例图实例&& 创建类图实例&39517.7& 自动生成代码和反向工程&& 自动生成代码&& 对单个源文件进行逆向工程&& 对项目进行逆向工程&& 使用向导进行逆向工程&40117.8& UML建模的其他高级操作&& 查找和替换&& 关联元素&& 过滤元素类型&& UML模型报告&& 指定显示和绘制首选项&40617.9& 小结&407第18章& Web服务还有SOA程序开发&408Web服务是分布式应用程序组件,它们符合一定的标准,因而可供外部使用。Web服务可以独立开发,并在不同的系统中运行,因此可以解决各种计算机应用程序的集成问题。面向服务的体系结构SOA(Service-Oriented Architecture)主要用于组装Java业务集成JBI(Java Business Integration)服务器的部署单元。在复合应用程序项目中,可以使用多种项目类型(例如BPEL、XSLT等)组装应用程序。本章首先介绍Web服务的开发方法。然后通过实例介绍了SOA程序的简单方法,其中包括如何进行可视化的BPEL商业流程开发等内容。18.1& Web服务开发&& Web服务的类型还有规范&& 创建一个简单的Web服务&& 在客户端调用Web服务&41218.2& 创建BPEL模块项目&41418.3& 创建WSDL文件&& 为WSDL创建XML架构文件&& 创建WSDL文件&& 可视化的WSDL编辑器&41918.4& 开发BPEL流程&& 创建BPEL流程&& BPEL流程编辑器&& BPEL流程元素&& 简单的BPEL流程实例&42318.5& 开发SOA复合应用程序&& 创建SOA复合应用程序&& 创建Web客户端测试SOA程序&42818.6& 小结&429第三篇& NetBeans手机开发第19章& 创建和运行Java ME应用程序&432Java ME平台是针对小型设备(如寻呼机、移动电话和机顶盒)开发的一组技术和规范。Java ME定义了很多专门针对电子消费设备和嵌入式设备的API。在NetBeans集成开发环境中通过安装Mobility Pack软件包,可以快速开发出Java ME应用程序。本章主要介绍Mobility Pack软件包,讲解摩托罗拉Java ME开发包的安装和使用,简单Java ME应用程序的创建和运行,还有针对Java ME应用程序的各种配置。19.1& Mobility Pack软件包简介&43219.2& 安装Java ME开发包&& 安装摩托罗拉的Java ME开发包&& 在NetBeans中集成摩托罗拉Java ME开发包&& Sun Java Wireless Toolkit 2.5 for CLDC简介&43619.3& 创建一个简单的Java ME应用程序&& 创建Mobility项目&& 创建MIDlet&43919.4& Java ME应用程序结构分析&44119.5& 配置Java ME应用程序&& 查看项目常规属性&& 定制平台&& 设置应用程序描述符属性&& 设置MIDlet&& 设置推注册&& 设置API权限&& 过滤源文件&& 设置编译属性&& 设置库和资源&& 设置JAR和JAD文件&& 设置Javadoc生成&& 设置运行属性&& 设置部署方法&45019.6& 小结&455第20章& Java ME程序的可视化开发&456NetBeans Mobility Pack中提供了可视化的Mobile设计器,利用其提供的强大功能可以通过可视方式来设计应用程序流和图形用户界面GUI。在将对象拖放到流设计器和屏幕设计器后,NetBeans将自动生成并更新实现设计的Java代码。这样,开发人员可以将更多的精力集中于业务逻辑上,从而大大提高了开发效率。本章首先简要介绍简单的可视MIDlet的创建方法,还有可视化的Mobile设计器的使用方法。然后,通过开发实例具体讲解每个MIDP组件的使用方法,特别是对Mobility Pack提供的SplashScreen、WaitScreen、FileBrowser、TableItem等组件还有各种SVG组件进行了详细的介绍。20.1& 创建可视的MIDlet&& 创建可视化的MIDlet&& 可视化MIDlet组件面板&& 流设计器&& 屏幕设计器& “导航”窗口& “属性”窗口&46020.2& MIDP 2.0高级界面组件&46020.3& 创建基于文本框(TextBox)的应用程序&& 创建文本框应用程序&& TextBox的常用属性&& 使用命令按钮&46420.4& 创建闪屏(SplashScreen)&46620.5& 使用滚动消息栏(Ticker)&46920.6& 创建警报(Alert)&47020.7& 创建等待屏幕(WaitScreen)&47320.8& 创建登录屏幕(LoginScreen)&47620.9& 创建SMS编写器(SMSComposer)&47920.10& 创建列表(List)&48120.11& 创建文件浏览器&48320.12& 创建PIM浏览器(PIMBrowser)&48520.13& 创建表单(Form)&& 使用文本字段组件(TextField)&& 使用字符串项组件(StringItem)&& 使用图像项组件(ImageItem)&& 使用标尺组件(Gauge)&& 使用日期字段组件(DateField)&& 使用选项组组件(ChoiceGroup)&& 使用TableItem组件&& 使用分隔符组件(Spacer)&50120.14& 使用SVG组件&& 预览SVG文件&& 设置外部编辑器&& 导出SVG图像和动画&& 使用SVG播放器组件(SVGPlayer)&& 使用SVG闪屏(SVGSplashScreen组件)和SVG等待屏幕20.14.5& (SVGWaitScreen组件)&& 使用SVG菜单组件(SVGMenu)&50820.15& 使用组件面板管理器&51020.16& 使用Mobile Game Builder&& 创建Game Builder样例项目&& 创建场景和平铺层&& 创建动画层&& 创建GameCanvas和MIDlet&51620.17& 小结&517第21章& Java ME开发高级技术&518前面两章中介绍了在NetBeans集成开发环境中开发Java ME程序的基本方法,本章将介绍一些高级技术,包括签名运行、进行混淆、进行单元测试等内容。对于初学者,可以跳过本章继续学习后续章节。21.1& 创建Canvas画布&51821.2& 应用程序的签名运行&& 签名概述&& NetBeans的安全管理器&& MIDP项目签名&& 指定安全域运行&52421.3& 对应用程序进行混淆处理&52421.4& 多编译配置还有预编译&& 配置管理&& 使用更多配置&& 使用预编译&52821.5& 小结&530第四篇& NetBeans组件开发第22章& 开发NetBeans插件模块&532NetBeans是Sun公司领导的一个成功的开发源码项目。前面几章主要介绍了NetBeans集成开发环境的各种使用和开发方法。本章将介绍NetBeans项目中另外一个产品:NetBeans平台。开发人员可以在NetBeans平台的基础上进行自己的应用程序开发,从而加快程序的开发过程。本章首先介绍NetBeans集成开发环境和NetBeans平台的区别,然后着重介绍如何开发NetBeans集成开发环境扩展模块,还有开发基于NetBeans平台的富客户端应用程序。本章旨在为NetBeans平台开发的读者指引一条入门的道路。对于不打算进行NetBeans平台开发的读者,只需要阅读本书的第一节,弄清楚NetBeans集成开发环境和NetBeans平台的概念即可。22.1& NetBeans IDE和NetBeans平台&& NetBeans平台概述&& NetBeans平台的功能&53322.2& NetBeans模块开发&& 创建NetBeans插件模块项目&& 创建菜单项和工具栏按钮&& 安装和卸载插件模块&54022.3& 插件模块项目管理&& 源和代码级别&& 库管理&& 设置显示参数&& 版本控制&& 打包设置&54522.4& 为操作编写处理代码&54622.5& 富客户端应用程序开发&& 富客户端应用程序开发概述&& 创建模块套件项目&& 添加模块项目&& 生成选项&& 去除不必要的菜单&& 创建闪屏&& 分发应用程序&55422.6& 小结&554第五篇& NetBeans开发C++程序第23章& 使用NetBeans开发C/C++程序&556NetBeans不仅仅是一个功能强大的Java开发工具,也可以成为其他语言的开发平台。如果安装了具有C/C++支持的NetBeans集成开发环境,还可以开发C和C++应用程序,从而使NetBeans成为一款跨平台的C/C++开发工具。带有C/C++支持的NetBeans提供了C/C++项目和模板、高级源代码编辑器、对编译器的支持还有Makefile和配置等功能,使开发C/C++项目变得轻松快捷。本章主要介绍了NetBeans C/C++ Pack软件包的安装和设置还有C和C++项目的创建,最后着重讲解了利用NetBeans C/++ Pack软件包创建JNI。23.1& NetBeans C/C++ Pack软件包简介&55623.2& 安装和设置NetBeans C/C++ Pack软件包&& 下载安装具有C/C++支持的NetBeans集成开发环境&& 安装并设置编译器和工具&55823.3& 创建和设置C和C++项目&& 创建C/C++应用程序&& 逻辑视图和物理视图&& 向项目中添加文件&& 编辑源文件&& 设置项目属性&& 管理配置&& 生成并运行项目&56823.4& 设置C/C++ Pack&& 设置C/C++生成工具&& 设置C/C++项目选项&& 设置C/C++代码帮助&57023.5& 创建Makefile&& Makefile简介&& 使用Makefile向导创建Makefile&57223.6& 创建基于现有代码的C/C++项目&57923.7& 利用C/C++ Pack创建JNI&& JNI简介&& 创建Java应用程序项目&& 创建C/C++动态库项目&& 生成并运行应用程序&58623.8& 小结&586附录A& NetBeans的快捷键&587}

我要回帖

更多关于 java调用com组件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信