201711671118《Java程序设计》第九章总结

9.1 JAVA SWING概述

       通过图形用户界面(GUI),用户和程序之间可以进行交互。

       Java.awt包提供了许多原来设计GUI的组件类。

       容器类(container)和组件类(component):

       javax.swing包中的Jcomponent类是java.awt包中Container的一个直接子类,是java.awt包中的Component类的一个间接子类。

       java把Component类的子类或间接子类创建的对象成为一个组件。

       java把Container的子类或间接子类创建的对象成为一个容器。

       Container类提供public方法add(),调用方法将组件添加到容器中。

       removeAll()方法可以移除容器中的全部组件。

       remove(Component c)方法移除组件c。

       容器嵌套:容器也是一个组件,一个容器可以添加到另一个容器当中。

       validate()方法:当容器添加新的组件或者移除组件时,应当调用validate方法,以确保组件的正常显示。

9.2  窗口

一个基于GUI的应用程序应当提供一个能和操作系统直接交互的容器,该容器可以被直接显示、绘制在操作系统控制的平台上,如显示器,这样的容器被称为GUI设计的底层容器。Jframe类实例是一个底层容器,即窗口。当需要一个窗口时,可使用Jframe或子类创建一个对象,窗口也是一个容器,可以向窗口添加组件,不允许将窗口添加到其他容器中。

9.2.1  JFrame常用方法

Jframe()创建一个无标题窗口。

Jframe(String s)创建标题为s的窗口。

public void setBounds(int a,int b,int width,int height)设置窗口位置(a,b),左上边为原点,宽为width,高为height。

public void setVisible(boolean b)设置窗口是否可见,默认false。

public void setResizable(boolean b)设置窗口是否可以调整大小,默认为true。

public void dispose()撤销当前窗口,并释放当前窗口使用的资源。

       9.2.2 菜单条、菜单、菜单项

       Jcomponet的子类Jmenubar负责创建菜单条。

       Jmenu负责创建菜单。

       JmenuItem负责检创建菜单项。

       Jmenu是JmenuItem的子类,因此菜单本身也是一个菜单项。

       Icon声明一个图标,使用其子类ImageIcon类创建一个图标:Icon icon=new ImageIcon(“a.gif”),菜单项调用setIcon(Icon icon)方法将图标设置为icon

9.3常用组件与布局

9.3.1 常见组件

JTextField(文本框):允许用户在文本框输入单行文本

JTeextArea(文本区):允许用户在文本区中输入多行文本

JButton(按钮):允许用户单击按钮

JLabel(标签):标签为用户提供信息

JCheckBox(复选框):为用户提供多种选择

JRadioButton(单选按钮):为用户提供单项选择。

JPasswordField(密码框):用户输入密码时,默认回显为“*”.

9.3.2 常用容器(本节提到的是中间容器)

JPanel面板:JPanel创建一个面板,默认布局:FlowLayout

JTabbedPane选项卡窗格:向容器添加一个组件时,容器会自动为该组件指定一个选项卡。个选项卡组件层叠式放入容器,单击选项卡时,显示相应的组件。

JScrollPane滚动窗格:滚动窗格可以添加一个组件,JTextArea不自带滚动条,因此就需要把文本区放到一个滚动窗格,如:JScrollPane scroll=new JScrollPane(new JTextArea());

JSplitPane拆分窗格:被分成两部分的容器,每部分有一个组件。

JLayeredPane分层窗格:如果添加容器中的组件经常需要待处理叠加问题,可以考虑将组件添加到分层窗格。

9.3.3 常用布局

FlowLayout布局:由左向右依次排序组件,排满装行,可以改变对齐方式。

BorderLayout布局:容器分为上、下、左、右、中五个区域。

CardLayout布局:组件测得放入容器。

GridLayout布局:将容器划分为等大小的网格区域。组件就位于网格中。

null布局:空布局,组件可以准确定位在容器的某个位置中

BoxLayout布局:当需要容器嵌套时,使用BoxLayout布局。

9.4处理事件

处理事件包括事件源、监视器、处理事件的接口3个概念。

事件源:能够产生事件的对象都可以称为事件源。

监视器:需要一个对象对事件源进行监视,以便对发生的事件作出处理。

处理事件的接口:当事件源发生事件时,监视器就会自动调用被类重写的接口方法。

ActionEvent事件:文本框、按钮、菜单项、密码框和单选框按钮都可以触发ActionEvent事件,即可以称为ActionEvent事件的事件源。

ItemEvent事件:选择框、下拉列表都可以触发ItemEvent事件。

DocumentEvent事件:用户在文本区中进行文本编辑操作,使得文本区的文本内容发生变化,将导致文本区所维护的文档模式中的数据发生变化,从而导致文本区所维护的文档触发DocumentEvent事件。

MouseEvent事件:任何组件都可以发生鼠标事件。

FocusEvent焦点事件:组件可以触发焦点事件。

KeyEvent事件:按下、释放、敲击键盘上一个键就会触发键盘事件。

WindowEvent事件:当一个窗口被激活、撤销激活、打开、关闭、图标化、撤销图标化,触发窗口事件。

9.5 使用MVC结构(模型-视图-控制器)

模型:用于存储数据的对象。

视图:为模型提供数据显示的对象

控制器:处理用户的交互操作

9.6 对话框

对话框分为无模式和有模式两种。当这个对话框处于激活状态时,只让程序响应对话框内部的事件,而且将堵塞其它线程的执行,用户不能再激活对话框所在程序中的其它窗口,直到该对话框消失不可见。无模式对话框:当这个对话框处于激活状态时,能再激活其它窗口,也不堵塞其它线程的执行。

猜你喜欢

转载自blog.csdn.net/rumple49/article/details/84401049