java课程总结.docx
- 文档编号:26914303
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:25
- 大小:1.07MB
java课程总结.docx
《java课程总结.docx》由会员分享,可在线阅读,更多相关《java课程总结.docx(25页珍藏版)》请在冰豆网上搜索。
java课程总结
Java课程总结
摘要:
java语言的程序有两种基本形式,一种是Application程序,另一种是Applet小程序,Applet小程序是基于浏览器运行的程序,它不是独立完整的,需要在WWW浏览器这种特定环境下运行;图像用户界面(GUI)使用图形方式,借助于窗口中的菜单、按钮等界面元素和鼠标操作,实现用户与计算机系统的交互作用。
关键字:
java学习图像用户界面Applet
1、图形化用户界面
知识点总结
1.1基本概念
AWT(AbstractWindowToolkit):
抽象窗口工具包,SUN公司提供的用于图形界面编程(GUI)的类库。
AWT框架不使用原生窗口部件(nativewidgets),一直未能突破LCD问题。
LCD问题导致了一些主要平台特征的遗失.AWT组件具有平台相关性.
Swing:
Swing是纯Java实现的轻量级(light-weight)组件,它不依赖系统的支持,Swing组件在不同平台具有一致性的表现,可以解决AWT框架的LCD问题,是Sun创建的新框架,但是Swing应用程序的界面外观不再和原生应用程序的外观相似。
而且消耗太多的内存,这样Swing不适于一些小设备.
java.awt包:
java.awt包中提供了GUI设计所使用的类和接口,提供了基本的java程序的GUI设计工具。
2.图像用户界面的构成
①容器:
若干个组件和容器的集合,对图形界面中的界面元素进行管理。
注:
容器有可以独立的窗口和不可以独立窗口两种。
②组件:
图形用户界面中不可再分的最小元素。
常用组件有:
标签(Label)
按钮(Button)
文本编辑区(TextField,TextArea)
复选框(Checkbox)
单选按钮(CheckboxGroup或RadioButton)
下拉列表(List或Choice)
3.图形用户界面的实现
选取组件—>设计布局—>响应事件
①选取组件
根据需要选取合适组件组成图形界面。
注:
在容器中放入组件首先要定义,再初始化,再加入到容器中。
②设计布局
利用容器的布局管理器实现。
③响应事件
用户通过图形界面进行某种操作,则引发了相应的事件,如,单击组件按钮时,便会产生一种事件对象。
事件对象描述了用户应该执行的操作。
4.界面元素的类结构
Java.awt包中包含了GUI所需要用的各类组件,各类容器。
界面元素间的层次关系:
分析:
组件类Component中包含了许多基本组件;容器类Container是组件类的一个子类,容器本身也是一种组件。
总结:
Java图形用户界面设计实际上就是向容器中添加组件或容器,组件在容器中的布局由布局管理器类来决定。
5.事件和事件处理
(1)事件处理的方法
①事件处理机制可分为3部分:
事件源:
图形用户界面上可能发生事件的每个组件,如单击按钮、
移动鼠标、关闭窗口等。
事件对象:
封装了有关事件的若干信息的事件类的对象。
事件监听者:
当事件发生时,事件监听者便是被通知的对象。
[总结]每个事件源可以发出若干种不同类型的事件,对每个事件源要注册事件监听者,当发生某种事件时,事件监听者将接收到通知,调用相应的方法来发生的事件进行处理。
注:
1)创建某种事件类的事件对象并要将它加入容器中。
2)注册当前容器为事件对象的监听者。
3)重新定义接口中的相应方法用来进行事件处理。
(2)事件类和监听者接口
Java.awt.event包中包含很多事件类,构成了一个事件类的体系结构:
图5-4
①EventObject类
所有事件的父类,包含一个最常用的方法getSource(),它的功能是返回产生事件的事件源。
②AWTEvent类
常用的方法:
getID()
功能:
返回事件的类型。
③ActionEvent类
执行动作事件,引发的事件动作包括:
1)单击按钮
2)选择菜单项
3)在文本框输入回车键
4)双击列表项中的选项
重要的方法有:
1)publicStringgetActionCommand()
功能:
返回引发事件的动作的命令名。
2)publicStringgetModifiers()
功能:
按不同的辅助键进一步将某一个事件再细分为几个事件。
④ItemEvent类
引发该类事件的动作有:
1)改变List对象选项的选中或不选中状态
2)改变Choice对象选项的选中或不选中状态。
3)改变Checkbox对象的选中或不选中状态。
4)改变MenuItem对象的选中或不选中状态。
主要方法有:
1)publicItemSelectablegetItemSelectablegetActionCommand()
功能:
返回引发选中状态变化事件的事件源。
2)publicObjectgetItem()
功能:
返回选中状态变化事件的具体选项。
3)publicintgetStateChange()
功能:
返回选中状态变化的类型,该方法的返回值有:
ItemEvent.SELECTED选项被选中
ItemEvent.DESELECTED选项未选中
⑤TextEvent类
代表文本框中文本的变化事件。
6.基本控制组件的使用
图形用户界面的3种组成成分:
用户自定义成分、控制组件、容器。
AWT组件层次关系
Container类的方法如下:
1.add(Componentcomp):
将指定组件放到容器中
2.remove(Componentcomp):
删除指定组件
3.setLayout(LayoutManagermgr):
设置容器布局
使用add()方法,可以将其他对象加入到容器中。
组件的位置和尺寸由布局管理器决定。
publicvoidsetEnabled(booleanb):
设置组件的使能状态。
参数b为true则组件使能,否则组件不使能。
只有使能状态的组件才能接受用户输入并引发事件
publicvoidsetFont(Fontf):
设置组件使用的字体
publicvoidsetSize(intwidth,intheight):
设置组件的大小
publicvoidsetVisible(booleanb):
设置组件是否可见的属性。
参数b为true时,组件在包括它的容器可见时也可见;否则组件不可见
publicvoidsetForeground(Colorc):
设置组件的前景色
publicvoidrequestFocus():
使组件获得焦点
Frame类
①Frame类是Window类的直接子类;
②Frame对象显示的效果是一个“窗口”,带有标题和尺寸;
③Frame默认初始化为不可见的,可使用setVisible(true)方法使之变为可见;
④默认的布局管理器是BorderLayout,可使用setLayout()方法改变其默认布局管理器。
1.Frame的构造方法有:
Framef=newFrame();
Framef=newFrame(Strings);
s为Frame的标题字符串。
2.Frame方法
①设置窗口大小
setSize( )这个方法用来设置窗口的大小,如下所示:
voidsetSize(intnewWidth,intnewHeight)
voidsetSize(DimensionnewSize)
窗口的新的大小在变量newWidth和newHeight中被指定,或者在来自Dimension类的newSize对象的width和height这两个成员变量中被指定。
这些大小使用像素为单位。
②获得当前的窗口大小
getSize( )这个方法被用来获得当前的窗口大小,
这个方法返回一个Dimension对象,在这个对象的成员变量width和height中存放着当前窗口的大小。
Panel类
①Panel不是顶层窗口,它必须位于窗口或其他容器之内;
②Panel可以容纳其他组件,在程序中经常用于布局和定位;
③Panel默认的布局管理器是FlowLayout,可使用setLayout()方法改变其默认布局管理器;
④Panel可以采用和所在容器不同的布局管理器。
7.Java中设计和实现图形用户界面的步骤:
1.创建组件(Component):
创建组件类的对象,指定其大小等属性。
2.指定布局(Layout):
根据具体需要排列组件的位置关系。
将该控制组件对象add()加入到某个容器中的指定位置处。
3.响应事件(Event):
将该组件对象注册给它所能产生的事件对应的事件监听者,重载事件处理方法,实现利用该组件对象与用户交互的功能。
五种布局管理器:
BorderLayout:
边沿布局
FlowLayout:
顺序布局
GridLayout:
网格布局
CardLayout:
卡片布局
GridBagLayout:
人为布局
setLayout(null)设置布局管理器
事件适配器
ComponentAdapter:
组件适配器;
ContainerAdapter:
容器适配器;
FocusAdapter:
焦点适配器;
KeyAdapter:
键盘适配器;
MouseAdapter:
鼠标适配器;
MouseMotionAdapter:
鼠标运动适配器;
WindowAdapter:
窗口适配器;abstract
面板(Panel):
是一个无边框的纯粹的容器,可以包含其他组件或加一个面板,但是它不能作为独立的窗口使用.在默认情况下,面板使用FlowLayout布局,可以使用setLayout()方法对布局方式进行修改.
面板目:
的是为了分层次、分区域管理组件.
注:
Applet是一个特殊的面板.
setLocation(),setSize()或setBounds(),来将它们定位在容器中。
Panel();//构造方法,以默认布局方法创建一个面板
Panel(LayoutManagerlayout);//用指定布局创建一个面板
publicComponentadd(Componentcomp,intindex);//为容添加一个组件
菜单
Java语言中提供了多种样式的菜单,如一般式、复选框式、快捷键式及弹出式菜单等。
如图所示的菜单栏(MenuBar)、菜单(Menu)和菜单项(MenuItem)三类对象组成。
1.MenuBar类(菜单栏)
用于创建菜单栏的构造方法,它是摆放菜单的容器。
MenuBar类中的构造方法是MenuBar(),使用该构造方法可以创建新的菜单栏对象,再用Frame类中的方setMenuBar()将菜单栏放置到Frame窗口框架中。
例如:
Framef=newFrame(“MenuBar”);
MenuBarmb=newMenuBar();f.setMenuBar(mb);//可以把菜单栏加载到窗口的上方
2.Menu类(主菜单项)add()方法加载到菜单栏
Menu类中包含了用于创建菜单的构造方法。
菜单中又包含了若干菜单项。
如鼠标点击一个菜单时,就展开了该菜单,在菜单中显示了一列菜单项。
创建菜单对象使用Menu类的下述构造方法:
Menu():
创建一个空标签的JMenu对象。
Menu(Stringtext):
使用指定的标签创建一个JMenu对象。
Menu(Stringtext,Booleanb):
使用指定的标签创建一个JMenu对象,并给出此菜单是否具有下拉式的属性。
Menu(Actiona):
创建一个支持Action的JMenu对象
MenuItem类(子菜单)add()方法加载到菜单中
MenuItem类包含了一些用于创建菜单项的构造方法和方法。
一个菜单项是包含在菜单中的一个字符串。
当用鼠标或键盘按键选中它们时,就触发了一个动作事件。
构造方法:
MenuItem( );使用空标签构造一个菜单项对象
MenuItem(Stringlabel);创建一个菜单项对象
MenuItem(Stringlabel,MenuShortcuts);创建一个菜单项对象快捷键.
Menum1=newMenu(“文件”);
MenuItemmi1=newMenuItem(“存储”,newMenuShortcut(KeyEventVK_S);//快捷键
MenuItemmi2=newMenuItem(“取出”);
m1.add(mi1);m1.add(mi2);
在Menu菜单中定义了addSeparator()和insertSeparator()方法,可加入分隔线.
带复选项的菜单(CheckboxMenuItem)
在菜单前面有一个复选项,可以对它进行选中操作.
publicCheckboxMenuItem();
publicCheckboxMenuItem(Stringlabel);
publicCheckboxMenuItem(Stringlabel,Booleanstate);
如:
Menum1=newMenu(“File”);
CheckboxMenuItemmil=CheckboxMenuItem(“Persistent”);
m1.add(mil);//初态为未选中的菜单项并将其加载到菜单m1中.
制作菜单的一般步骤
制作一个可用的菜单系统,一般需要经过下面的几个步骤:
(1)创建一个MenuBar对象并将其放置在一个Frame中;setMenuBar()将菜单栏放置到Frame窗口框架中。
(2)创建Menu菜单对象添加到MenuBar中。
add()方法加载到菜单栏
(3)创建MenuItem菜单项对象并将其添加到Menu对象中;add()方法加载到菜单中
当然,上面主要是创建菜单的结构,如果要使用菜单所指出的功能,则必须要为菜单项注册监听者,并在监听者提供的事件处理程序中写入相应的代码。
菜单项被选中时,引发一个ActionEvent事件,为菜单项注册ActionListener并实现相应的方法.
文件对话框(FileDialog)
文件对话框是使用文件操作时经常用的组件,例如打开、保存文件等。
它有自己的自由窗口,以及窗口元素,并且允许用户浏览文件系统,以及为以后的操作选择一个特定的文件。
下面是一个创建文件对话框的例子:
FileDialogd=newFileDialog(parentFrame,"FileDialog");
d.setVisible(true);
Stringfname=d.getFile();
…
通常并不需要处理FileDialog的事件。
调用setVisible(true)将阻塞事件,直至用户选择OK,这时会请求用户选择一个文件名,作为一个String返回。
TextField显示为单行文本无法存放多行文本
TextFieldtf=newTextField(20);//设置为20列
f.add(tf,"North");
TextArea设置为多行文本
finalTextAreatf=newTextArea();
f.add(tf);
应用1——
importjava.awt.*;
importjava.awt.event.*;
publicclassMenuExampleextendsFrameimplementsActionListener
{Panelp=newPanel();Buttonbt=newButton("退出系统");
MenuBarmb=newMenuBar();//以下创建菜单栏对象
Menum1=newMenu("文件");
MenuItemopen=newMenuItem("打开");
MenuItemclose=newMenuItem("关闭");
MenuItemexit=newMenuItem("退出");
Menum2=newMenu("编辑");
MenuItemcopy=newMenuItem("复制");
MenuItemcut=newMenuItem("剪切");
MenuItempaste=newMenuItem("粘贴");
Menum3=newMenu("帮助");
MenuItemconten=newMenuItem("目录");
MenuItemindex=newMenuItem("索引");
MenuItemabout=newMenuItem("关于");
MenuExample()//构造方法
{super("Window窗口");setSize(300,100);
add("South",p);p.add(bt);
bt.addActionListener(this);
m1.add(open);m1.addSeparator();
m1.add(close);m1.addSeparator();
m1.add(exit);
exit.addActionListener(this);
mb.add(m1);
m2.add(copy);m2.addSeparator();
m2.add(cut);m2.addSeparator();
m2.add(paste);
mb.add(m2);
m3.add(conten);m3.addSeparator();
m3.add(index);m3.addSeparator();
m3.add(about);
mb.add(m3);
setMenuBar(mb);show();
}
publicstaticvoidmain(Stringargs[])
{newMenuExample();}
publicvoidactionPerformed(ActionEvente)
{if(e.getActionCommand()=="退出"||e.getSource()==bt)
System.exit(0);
}
}
应用2.//创建一个文件对话框,在用户单击窗体的按钮时,该对话框显示出来,选择文件的路径和文件名显示在框架的文本区中.
importjava.awt.*;importjava.awt.event.*;
publicclassFileDialogExampleimplementsActionListener
{Frameff;Buttonbb;TextAreatt;FileDialogdd;
publicstaticvoidmain(Stringargs[])
{FileDialogExamplefde=newFileDialogExample();
fde.go();
}
publicvoidgo()
{ff=newFrame("文件对话框举例");
bb=newButton("显示文件对话框");
bb.addActionListener(this);//事件注册
ff.add("South",bb);
tt=newTextArea();
ff.add("Center",tt);
dd=newFileDialog(ff,"文件对话框");
ff.setSize(350,120);ff.setVisible(true);
ff.addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
{System.exit(0);}});
}
publicvoidactionPerformed(ActionEvente)
{dd.setVisible(true);
tt.setText("Director:
"+dd.getDirectory());
tt.append("\nFilename:
"+dd.getFile());
}
}
2、JavaApplet
基于浏览器运行的小程序。
知识点总结
2.1Applet的特点
(1)Applet类的主类必须是类库中已定义的Applet类的子类,一般定义格式如下:
publicclass<类名>extendsApplet
{
<类体>
}
(2)Applet是一个已经构建好的框架程序中的一个模块。
它不能直接运行,必须将它的字节码文件嵌套在一个HTML文件中,通过激活Web浏览器中的Java解释器才可执行。
(3)Applet可以直接利用浏览器或AppletViewer所提供的图形用户界面来显示运行结果。
2.2Applet类
Applet存放在java.applet包中,是java语言类库中的一个重要系统类。
(1)Applet类和其他类间的关系
注:
默认情况下,Applet类使用了FlowLayout布局管理器。
(2)Applet的主要方法
①init()方法
作用:
完成初始化操作,如:
创建对象、加载图形和文字、设置参数、加载声音等。
重载格式:
publicclassinit
{
<方法体>
}
注:
该方法通常在Applet第一次被加载时调用,在Applet运行期间只执行一次。
②start()方法
作用:
启动浏览器运行Applet主线程。
重载格式:
publicclassstart
{
<方法体>
}
注:
该方法在初始化后至少被调用1次,通常,当Applet被重新启动时,系统会自动调用该方法。
Applet被重启的两种情况:
1)用户使用了浏览器Reload操作;
2)离开浏览器后又返回。
③paint()方法
功能:
输出显示结果。
重载格式:
publicclasspaint
{
<方法体>
}
注:
它是系统自动调用的方法,自动调用的情况如下:
1)当Applet被启动后,系统自动调用该函数重绘界面。
2)当Applet所在的浏览器的窗口改变时。
3)当Applet的repaint()方法和其他相关方法被调用时。
④stop()方法
功能:
结束Applet程序。
重载格式:
publicclassstop
{
<方法体>
}
⑤destroy()方法
功能:
终止Applet的执行,释放Applet占有的一切资源。
注:
该方法在Applet结束时一定被调用。
小结:
<1>Applet的生命周期
图:
<2>Applet程序的典型结构:
图:
2.3Applet程序和HTML文件
(1)HTML文件
由HTML中规定的标记构成。
①常用标记:
和表示HTML文件的开始和结束。
和表示Web浏览器窗口标题内容。和表示HTML文件在浏览器窗口中显示内容。表示嵌入到HTML文件中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程 总结