图形用户界面GUI(Graphical User Interface),指的是在一个程序中用户可以看到的和与之交互的部分。
JavaAPI中提供两套组件用于支持编写用户界面AWT and Swing。
java在初期借助一种窗口开发类库,叫作AWT(Abstract Windows Toolkit,抽象窗口工具箱)来达到在图形接口上平台独立性。
AWT处理用户界面元素的方法
把用户界面元素的创建和行为委托给目标平台(Windows、Macintosh、Linux等)上的本地GUI工具(Peers,对等组件)进行处理。
Peers是本地GUI组件,由AWT来操控,Peers对程序开发者是隐而不见的,各平台所产生的peers与各平台有关 。
![](data:image/png;base64,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)
Ø重量组件和轻量组件
l、 与本地对等组件相关联的组件(AWT组件)就被称为重量组件。
lI、 不依赖本地对等组件的组件(Swing组件)就被称为轻量组件。
lII、 重量组件具有平台不一致性。
lV 、轻量组件在重量容器的窗口中绘制,背景可以是透明的。
Swing:
类和接口定义在javax.swing包中,建立在AWT的基础上,属于轻量组件,完全由纯java代码编写,不依赖于任何特定平台,具有更好的平台无关性和和可移植性。
swing采用MVC架构(表层架构模式):
M(模型Model):存储定义组件数据。
V(视图View):从模型中的数据创建组件的可视化表示。
C(控制器Controler):处理用户与组件的交互操作,并在必要时更改模型或视图以影响用户行为。
Swing视图部分由两个基本元素组成:容器(container)和组件(component)。
组件是独立的可视化控件(ex:按钮、文本字段)。
容器是一种设计用来放置其他组件的特殊类型的组件。
一个组件要显示就必须放在一个容器内。
Swing中:
重量级容器(继承自AWT的Container类):JFram(窗体)、JDialog(对话框)、JWindow(窗口)、JApplet(小程序)等。
轻量级容器(继承自Swing类JComponent):类JPanel(面板)、类JSpliPane(分隔窗格)、类JScrollPane(滚动窗格)、
类JTabbedPane(标签窗格)、类JToolBar(工具条)、和一些专用容器:
类JInternalFrame(内部画框)、JLayeredPane(分隔窗格)、类JRootPane(根窗格)
Swing组件(继承自Swing类JComponent,JComponent继承自AWT类Container和Component):
向用户展示系统的操作和反馈信息,是一个完整的实体,通常不再容纳其他组件作为它的组成部分。
简单组件:按钮(类JButton)、单选按钮(JRadioButton)、复选框(JCheckBox)、组合框(JComboBox)、列表框(JList)、
文本字段(JTextField)、纯文本区域(JTextArea)等。
复杂组件:菜单(Jmenu)、带样式文本(style text)、表格(JTable)、树(JTree)、
下面是几个方法:
add( ):将组件添加到该容器中。
removeAll() :移掉容器中的全部组件。
remove(Component c) 移掉容器中参数指定的组件。
validate():每当容器添加新的组件或移掉组件时,调用该方法以保证容器中的组件能正确显示出来。
Ø组件的三要素
内容:如按钮的状态、文本框中的文本
外观显示:如组件的颜色、大小、可见性
行为:组建对外部刺激(事件)的反应
三要素之间的是相互关联的、
ex:按钮组件
![](data:image/png;base64,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)
JFrame(窗体)的特性
JFrame类其子类创建的对象是窗体。
JFrame类或子类创建的对象是重量容器。
不可以把组件直接添加到JFame窗体中,应当把组件添加到内容面板中。
不能为JFame窗体设置布局,应为JFame窗体的内容面板设置布局。
JFame窗体通过调用getContentPane()方法得到它的内容面板。
ØJFrame类常用方法:
构造方法
JFrame() :可以创建一个无标题的窗口。
JFrame(String s) :创建一个标题为s的窗口。
常用方法
public void setBounds(int a,int b,int width,int height) 窗口调用该方法可以设置出现在屏幕上时的初始位置是(a,b),
即距屏幕左面a个像素、距屏幕上方b个像素;窗口的宽是width,高是height。
public void setSize(int width,int height):设置窗口的大小,窗口在屏幕出现是默认位置是(0,0)。
public void setVisible(boolean b):设置窗口是可见还是不可见,窗口默认是不可见的。
public void setResizable(boolean b):设置窗口是否可调整大小,窗口默认是可调整大小的。
public void setDefaultCloseOperation(int operation) :设置单击窗体右上角的关闭图标后,程序会做出怎样的处理。
其中的参数operation取下列有效值:
DO_NOTHING_ON_CLOSE:什么也不做。
HIDE_ON_CLOSE:隐藏当前窗口。
DISPOSE_ON_CLOSE:隐藏当前窗口,并释放窗体占有的其它资源。
EXIT_ON_CLOSE:结束窗体所在的应用程序。
ex:
import javax.swing.JFrame;
public class JFrameTest {
public static void main(String[] args) {
JFrame jFrame = new JFrame("窗体名称");//或者使用 setTitle("窗体标题");
// 设置初始位置与大小
jFrame.setBounds(200, 200, 300, 300);
// 设置大小
jFrame.setSize(300, 300);
// 设置居中
jFrame.setLocationRelativeTo(null);
// 退出应用程序
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 不允许修改窗口大小
jFrame.setResizable(false);
// 设置窗体可见
jFrame.setVisible(true);
}
}
Swing菜单由菜单条(JMenuBar)、菜单(JMenu)和菜单项(JMenuItem)构成。
菜单条是所有菜单和菜单项的根(容器)。
JMenuBar 菜单条
JMenuBar是JComponent类的子类,负责创建菜单条。
JMenuBar menuBar=new JMenuBar();
将菜单条放置到JFrame窗口中:
public void setJMenuBar(JMenuBar menubar);
需要注意的是,只能向窗口添加一个菜单条
JMenu 菜单
JMenu是JComponent类的间接子类,负责创建菜单。
pulbic JMenu():建立一个没有标题的菜单。
pulbic JMenu(String s):建立一个指定标题菜单,标题由参数s确定。
例如: 创建一个名为“Edit”的菜单,并添加到菜单条中。
JMenu editMenu=new JMenu(“Edit”);
menuBar.add(editMenu);
常用方法
public void add(MenuItem item):向菜单增加由参数item指定的菜单选项对象。
public void add(String s):向菜单增加指定的选项。
public JMenuItem getItem(int n):得到指定索引处的菜单选项。
public int getItemCount():得到菜单选项数目。
JMenuItem 菜单项
JMenu是JComponent类的间接子类,负责创建菜单项。
public JMenuItem(String s):构造有标题的菜单项。
public JMenuItem(String text, Icon icon):构造有标题和图标的菜单项。
创建图标对象 Icon icon=new ImageIcon(“图标文件名”);
菜单项将被放在菜单里。例如:
JMenuItem pasteItem=new JMenuItem(“Paste”);
editMenu.add(pasteItem);
主要方法:
public void setEnabled(boolean b):设置当前菜单项是否可被选择
public String getLabel():得到菜单选项的名字。
public void setAccelerator(KeyStroke keystroke): 为菜单项设置快捷键。
public static KeyStroke getKeyStroke(int keyCode, int modifiers) :返回KeyStroke对象。
Ø嵌入JMenu子菜单:
菜单项本身还可以是一个菜单,称这样的菜单项为子菜单。
使用布局管理器来实现布局设计:
布局管理器是基于AWT的
布局管理器的类型
流布局管理器:FlowLayout
边界布局管理器:BoderLayout
卡片式布局管理器:CardLayout
网格布局管理器:GridLayout
盒式布局管理器:BoxLayout
布局管理让容器使用方法setLayout(布局对象)来设计自己的布局。
BorderLayout
Window型容器的默认布局,比如Jframe类、JDialog类。
每个被BorderLayout管理的容器均被划分为五个区域:东(EAST) ,南(SOUTH),西(WEST),北(NORTH),中(CENTER)。
容器的每个区域,只能加入一个组件,如果试图加入多个组件,其中只有一个组件是可见的。
对于东南西北这四个边界区域,如果,其中的某个区域没有用,它的大小将变为0,CENTER区域将扩展并占用该区域。
构造方法
BorderLayout():构造一个间距为0的BorderLayout实例
BorderLayout(int hgap,int vgap):构造一个指定间距的BorderLayout实例
在BorderLayout布局管理器的管理下,组建必须通过add()方法加入到容器的五个命名区域之一,否则它们是不可见的。
方法:add(组件,区域)
FlowLayout
将组件按照加入的顺序逐个地放在容器中的一行上,一行放满后再另起一个新行。
每一行中的组件按布局指定的方式对齐方,默认情况下是居中对齐。
三种构造方法:
FlowLayout()
FlowLayout(int align)![](data:image/png;base64,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)
FlowLayout(int align,int hgap,int vgap)
FlowLayout布局管理器不强行设定组件的大小,而是允许组件拥有自己希望的大小。
每个组件都有一个getPreferredSize()方法,容器布局管理器会调用此方法取得每个组件希望的大小。
FlowLayout布局是JPanle容器的默认布局管理器。
GridLayout
网格式的布局管理器,它将容器空间划分成若干行乘若干列的网格,每个格放一个组件。
各组件按照从上到下,从左至右的顺序排列。
构造方法:
GridLayout():创建一个只有一行的网格,列数根据实际需要而定
GridLayout(int rows,int cols):创建指定行、列的网格,rows和cols中的一个值可以为0
GridLayout(int rows,int cols,int hgap,int vgap)
使用GridLayout布局设计的一般步骤:
使用GridLayout的构造方法创建布局对象,指定划分网格的行数和列数
使用GridLayout布局容器调用方发add将组件加入容器。
GridLayout布局中每个网格都是相同大小并且强制组件与网格相同大小
CardLayout
卡式布局管理器,可以容纳多个组件,但是同一时刻容器只能从这些组件中选出一个来显示,被显示的组件占据容器的整个空间。
选项卡窗格(JTabbedPane)的默认布局是CardLayout。
在JTabbedPane中加入组件:
add(String text,Component c);
指定和该组件c对应的选项卡的文本提示是text。
BoxLayout
用BoxLayout类可以创建盒式布局。
Box类创建的容器称作一个盒式容器,盒式容器的的默认布局是盒式布局,而且不允许更改盒式容器的布局。
用来添加组件的轻容器,称为中间容器。
JPanel 面板
JPanel类用来创建一个面板对象,可以向这个面板添加组件(直接使用add方法)。
使用时需要把这个面板添加到底层容器或其他中间容器中。
JPanel面板的默认布局是FlowLayout布局。
构造方法
JPanel():构造一个面板容器对象
JScrollPane滚动窗格
把一个组件放到一个滚动窗格中,然后通过滚动条来观察这个组件。
例如,JTextArea不自带滚动条,可把文本区放到一个滚动窗格中。
构造方法
JScrollPane(component c):构造一个滚动窗格。
JSplitPane拆分窗格
被分成两部分的容器,拆分窗格有两种类型:
水平拆分:用一条拆分线把容器分成左右两部分,左面放一个组件,右面放一个组件,拆分线可以水平移动
垂直拆分:用一条拆分线分成上下两部分,上面放一个组件,下面放一个组件,拆分线可以垂直移动。
构造方法
JSplitPane(int a, Component b ,Component c): 构造一个拆分窗格
setDividerLocation(double position):拆分窗格设置拆分线的位置。
JLayeredPane分层窗格
如果添加到容器中的组件经常需要处理重叠问题,就可以将组件添加到JLayeredPane容器。
JLayeredPane将容器分成5个层,容器使用
add(Jcomponent com, int layer);
添加组件com,并指定com所在的层。
ulayer取值: DEFAULT_LAYER:最底层
PALETTE_LAYER
MODAL_LAYER
POPUP_LAYER
DRAG_LAYER:最上面的层
![](data:image/png;base64,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)
JTextField文本框
用来建立文本框的,用户可以在文本框输入单行的文本。
构造方法
JTextField(int x):创建文本框对象,可以在文本框中输入若干个字符,文本框的可见字符个数由参数x指定。
JTextField(String s) :创建文本框对象,则文本框的初始字符串为s,可以在文本框中输入若干个字符。
主要方法
public void setText(String s):设置文本框中的文本为参数s指定的文本。
public String getText() :获取文本框中的文本。
public void setEditable(boolean b) :指定文本框的可编辑性(默认为可编辑的)。
public void setHorizontalAlignment(int alignment) :设文本在文本框中的对齐方式,其中alignment的有效值确定对齐方式,如:LEFT、CENTER、RIGHT。
JPasswordField
建立一个密码框对象
setEchoChar(char c):设置回显字符(默认的回显字符是‘*’)。
char[ ] getPassword()方法获取密码框中的密码。