NetBeans学习笔记第一章NetBeans集成开发环境创建第一个NetBeans项目打开NetBeans,新建项目——〉应用程序——〉项目名称:firstexample,设定存储位置——〉在main函数下输入代码:System.out.println(“欢迎使用NetBeans5.0,这是第一个例子。”);——〉保存——〉运行。源代码编辑器尽管可视化开发大大缩短了开发人员的时间,但是代码的编写还是不可被取代的,代码的编写仍然是整个程序的核心部分。一个程序的好坏,很大程度上取决于代码的编写。NetBeans提供的代码编辑器十分好用,对于代码的整体性,自动查找错误和修复上面,有了很好的帮助。第二章Swing概述Swing是SUNMicroSystem建立的新一代GUI工具包,允许用户进行企业级的开发。Swing的开发需要许多的包,这里不再一一介绍,当开发的时候,NetBeans会提醒你添加需要的包,通过修复添加就可以。下面,我们来进行一个简单得Swing程序。再使用了JDK以后,我们对java语言已经有了一定的认识和了解。虽然NetBeans可以使用控件来进行开发,但是必要的代码开发,还是不可少的。在没有习惯以及熟练掌握控件的托拽开发以前,让我们先利用代码来编写一个小的程序。步骤如下:建立一个项目,创建一个扩展Jframe的类FirstSwing用来存放各个组件。在main()方法中新建一个FirstSwing的实例mySwing。在FirstSwing类中声明各个组件:privateJLabeljLabelUserName;privateJLabeljLabelPassword;privateJTextFieldjTextFieldUserName;privateJPasswordFieldjpfPassword;privateJButtonjButtonEnter;privateJButtonjButtonCancel;将FirstSwing的布局管理器设置为null:this.setLayout(null);//在FirstSwing方法中定义。为声明的每个组件创建实例对象:jLabelUserName=newJLabel(用户名:);jLabelPassword=newJLabel(密码:);jTextFieldUserName=newJTextField();jpfPassword=newJPasswordField();jButtonEnter=newJButton(确定);jButtonCancel=newJButton(取消);设置控件的位置,并且添加到容器中:jLabelUserName.setBounds(10,20,80,20);jLabelPassword.setBounds(10,50,80,20);jTextFieldUserName.setBounds(100,20,150,20);jpfPassword.setBounds(100,50,150,20);jButtonEnter.setBounds(80,90,60,20);jButtonCancel.setBounds(160,90,60,20);this.add(jLabelUserName);this.add(jLabelPassword);this.add(jTextFieldUserName);this.add(jpfPassword);this.add(jButtonEnter);this.add(jButtonCancel);设置FirstSwing的大小、标题和可见性:this.setBounds(330,250,300,150);this.setTitle(这是第一个Swing程序!);this.setVisible(true);这样,整个程序就完成了,下面给出完整的代码:importjava.awt.*;importjavax.swing.*;classFirstSwingextendsJFrame{privateJLabeljLabelUserName;privateJLabeljLabelPassword;privateJTextFieldjTextFieldUserName;privateJPasswordFieldjpfPassword;privateJButtonjButtonEnter;privateJButtonjButtonCancel;publicFirstSwing(){this.setLayout(null);jLabelUserName=newJLabel(用户名:);jLabelPassword=newJLabel(密码:);jTextFieldUserName=newJTextField();jpfPassword=newJPasswordField();jButtonEnter=newJButton(确定);jButtonCancel=newJButton(取消);jLabelUserName.setBounds(10,20,80,20);jLabelPassword.setBounds(10,50,80,20);jTextFieldUserName.setBounds(100,20,150,20);jpfPassword.setBounds(100,50,150,20);jButtonEnter.setBounds(80,90,60,20);jButtonCancel.setBounds(160,90,60,20);this.add(jLabelUserName);this.add(jLabelPassword);this.add(jTextFieldUserName);this.add(jpfPassword);this.add(jButtonEnter);this.add(jButtonCancel);this.setBounds(330,250,300,150);this.setTitle(这是第一个Swing程序!);this.setVisible(true);}}publicclassMain{publicstaticvoidmain(String[]args){FirstSwingmySwing=newFirstSwing();}}开发后的图像如下:通过上面的例子,我们已经能够利用NetBeans编写一个简单的,具有GUI界面的程序了,但是,纯粹的利用代码来编写,十分费力,所以,我们接下来讲的就是如何利用NetBeans来开发一个Swing应用程序。步骤如下:创建项目——〉将工程的名字修改为addstudentinfo,并且设置包的位置,一般设置位org.netbeans,选中左方窗口的源代码包下的netbeans节点,鼠标右击,新建JFrame,并且修改名字为AddStudentFrame,然后确定。打开GUI设计器。向窗体上添加一个Jlabel,鼠标右击——〉改变变量名称:jLabelStudentName,属性:text:姓名。然后依次再添加4个Jlabel,名称分别为jLabelStudentID(学号:),jLabelGender(性别:),jLabelGrade(班级:),jLabelPhoneNum(联系电话:)。添加四个JtextField,分别为jTextFieldStudentID,jTextFieldGrade,jTextFieldPhoneNum,还有jTextFieldName。全部设置为空。两个JradioButton,JradioButtonMale(男),JRadioButtonFemale(女);两个JButton,JbuttonEnter(确定),JbuttonCancel(取消);运行后的图像如下:第三章Swing/JFC的事件模型基础任何支持GUI的操作环境都会不断地监听事件。当按下键盘或者单击鼠标的时候,便会触发一个相应的事件,操作环境把这些事件报告给正在运行的程序,接着程序决定如何响应这些事件。在java中,开发人员能够控制各种事件,可以把迅速响应事件的对象指派成一个事件监听器。下面介绍一下常用事件对象及其作用。AWTEvent:所有AWT事件的根事件类。ConnectionEvent:封装与连接有关信息的事件。ChangeEvent:封装状态改变信息的事件。ListSelectionEvent:表示当前选择中更改的特征事件。CaretEvent:封装文本区中的光标改变信息的事件。ListDataEvent:定义一个封装列表更改的事件。HyperlinkEvent:封装与超文本连接有关的事件。TableColumnModelEvent:某一个表的列模型已发生改变。TableModelEvent:通知侦听器某一个表模型已发生改变。TreeExpansionEvent:用于表示树中的单个路径的事件。TreeModelEvent:封装描述树模型更改的信息。TreeSelectionEvent:描述当前选择的更改事件。上面所述的,只是一些常用的事件对象和作用,当遇到那些不常用的时,应该第一时间查阅JDK。在了解了事件处理的工作机制以后,现在深入讨论java中的事件处理。Java中的事件处理是面向对象的,所有事件都是从java.util包中的EventObject类扩展来的。EventObject有一个子类AWTEvent,它是所有AWT事件的父类。对于java开发人员来说,有些AWT事件在实际中应用不多。我们所讲述的,只是在实际中会被传到舰艇气得AWT事件类型。常用的事件类型和接口事件类型接口名称接口中声明的方法作用ActionEventActionEventListeneractionPerformed(ActionEvente)监听组件的某个动作AdjustmentEventAdjustmentEventListeneradjustmentValueChanged(AdjustmentEvente)监听调整事件ComponentEventComponentListenercomponentHidden(ComponentEvente)监听组件隐藏事件同上同上…………Moved………………移动事件同上同上…………Resized…………调整尺寸同上同上…………Shown………………显示事件ContainerEventContainerEventListenercomponentAdded(ContainerEvente)监听容器添加组件事件同上同上…………Removed…………移除事件FocusEventFocusListenerfocusGained(FocusEvente)监听键盘获得焦点事件同上同上……Lost…………失去焦点HierarchyEventHierarchyBoundsListenerancestorMoved(HierarchyEvente)监听父窗口的移动事件同上同上……Resized……………………调整尺寸InoputMethodEventInputMethodListenerinputMethodTextChanged(InoputMethodEven)监听输入方式改变事件ItemEventItemListeneritemStateChanged(ItemEvente)是否选种状态的改变KeyEventKeyListenerkeyPressed(KeyEvente)监听键盘按下事件同上同上……Released……释放事件同上同上……Typed…………单击事件MouseEventMouseListenermouseClicked(MouseEvente)监听鼠标的单击事件同上同上……Entered………………移入同上同上……Exited………………移出同上同上……Pressed………………按下同上同上……Released…………释放同上MouseMotionLisenermouseDragged(Even