第十二周课程总结
Posted youlanghua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十二周课程总结相关的知识,希望对你有一定的参考价值。
第十二周
本周主要学习了图形界面的其他容器,包括JPanel、JSplitPane、JTabbedPane、JScrollPane、JDesktopPane与JInternalFrame容器功能和运用,进一步丰富对窗口界面更加灵活的设置与操作,还讲解了关于窗口的反应即事件处理,对窗口进行监听其上的操作,并作出简单反应;新接触后感觉非常新颖和有趣,特别是课上登陆界面的演习、演示,让我们清楚的认识到就算窗口放大放小,都能监听,更别说登陆次数或登陆个数,甚至是登陆过的账号全能记录若事先有设置监听,只可惜密码无法解析,不过也非常强大了。
一、其他容器:
1、JPanel
- JPanel 是 Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,是一种轻量级容器,可以加入到JFrame窗体中。
JPanel默认的布局管理器是FlowLayout,其自身可以嵌套组合,在不同子容器中可包含其他组件(component),如JButton、JTextArea、JTextField 等,功能是对对窗体上的这些控件进行组合。
两个构造方法
2、JSplitPane
- JSplitPane能将窗口分割成两部分。
- JSplitPane提供两个常数让你设置到底是要水平分割还是垂直分割。这两个常数分别是:
HORIZONTAL_SPIT
,VERTICAL_SPLIT
。
splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,text1,text2);此为水平分割;
splitPane=new JSplitPane(JSplitPane.VERTICAL_SPLIT,text1,text2);此为垂直分割。
使用多个JSplitPane可以实现复杂分割。
JSplitPane类的主要方法及常量
3、JTabbedPane
- 选项卡面板(JTabbedPane):一个面板上设置多个选项卡供使用者选择。
- 一个组件,它允许用户通过单击具有给定标题或图标的选项卡,在一组组件之间进行切换。
JTabbedPane类的常用方法及常量
4、JScrollPane
- JScrollPane的主要功能就是为显示的内容添加滚动条。
- JScrollPane类可提供轻量级组件的 scrollable 视图。JScrollPane 管理视口、可选的垂直和水平滚动条以及可选的行和列标题视口。
JScrollPane的常用方法及常量
5、JDesktopPane与JInternalFrame
- JDesktopPane用于创建多文档界面或虚拟桌面的容器。
- JInternalFrame类是一个轻量级对象,用来创建支持拖动、关闭、图标化、调整大小、最小化、最大化、标题显示和菜单栏的内部窗体,JInternalFrame不能单独出现,必须依附在最上层组件上,该内部窗体需要显示在JDesktopPane类创建的桌面面板中。
- 使用JDesktopPane与JInternalFrame可以实现一个窗体可以出现多个子窗体,且每一个子窗体都无法超出父窗体的区域。
JDesktopPane类的两个常用方法:
二、事件处理
事件:
图形用户界面是基于事件驱动的,即当用户与图形用户界面交互时,这些构件就产生事件。
例如,当移动鼠标、单击按钮、在文本框中输入字符、关闭一个窗口等,这些都是事件。事件处理:
事件处理采用的是基于事件源、事件对象和监听者的委托事件处理模型;
其基本原理是:每个事件源可以发出若干种不同类型的事件,在程序中为每个事件源指定一个或者多个监听者,它可以对某种事件进行监听,如果某种事件发生,就调用相应监听者中的方法。
一个对象发生状态变化,监听器则是不断监听事件变化,并根据这些事件进行相应地处理。如果没有能够接收和处理事件的对象,图形界面程序所发生的一切事件都是隐形的。
所有监听器都是以接口的形式实现的,为了减少不必要的程序段,在使用监听器的时候,通常都使用对应的监听适配器。窗体事件:
WindowListener是专门用来处理窗体事件的监听接口,一个窗体的所有状态变化,如窗口打开与关闭、缩小与最大化等都可以用这个接口进行监听。动作事件:
动作事件可以使按钮变得有意义,在Swing中,可以使用ActionListener接口处理按钮的动作事件。由于ActionLIstener接口定义了一个方法,因此没有对应的监听适配器。适配器类(Adapter):
适配器类都是实现了对应的接口的类;
使用适配器类可以使得代码更加清晰;
以上是关于第十二周课程总结的主要内容,如果未能解决你的问题,请参考以下文章