教材学习内容总结
1.
Java.awt包,即Java抽象窗口工具包
Javax.swing包,提供了功能更为强大的用来设计GUI的类
Java把Component类的子类或间接子类创建的对象称为一个组件
Java把Container的子类或间接子类创建的对象称为一个容器
removeAll()方法可以移掉容器中的全部组件,调用remove(Component c)方法可以移掉容器中参数c指定的组件
validate()方法,以保证容器中的组件能正确显示出来
2.
Java提供的JFrame类的实例就是一个底层容器,即通常所称的窗口
其他组件必须被添加到底层容器中,以便借助这个底层容器和操作系统进行信息交互
窗口默认被系统添加到显示器屏幕上,因此不允许将一个窗口添加到另一个容器中
3.
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)设置窗口的大小
public void setLocation(int x,int y)设置窗口的位置,默认位置是(0,0)
public void setVisible(boolean b)设置窗口是否可见,窗口默认是不可见的
public void setResizable(boolean b)设置窗口是否可调整大小,默认可调整大小
public void dispose()撤销当前窗口,并释放当前窗口所使用的资源
public void setExtendedState(int state)设置窗口的扩展状态,其中参数state去JFrame类中的下列常数:
MAXMIZED_HORIZ(水平方向最大化)
MAXIMIZED_VERT(垂直方向最大化)
MAXIMIZED_BOTH(水平、垂直方向都最大化)
public void setDefaultCloseOperation(int operation)该方法用来设置单击窗体右上角的关闭图标后,程序会做出怎样的处理。其中的参数operation去JFrame类中的下列int型static常数,程序根据参数operation取值做出不同的处理:
DO_NOTHING_ON_CLOSE(什么也不做)
HIDE_ON_CLOSE(隐藏当前窗口)
DISPOSE_ON_CLOSE(隐藏当前窗口,并释放窗体占有的其他资源)
EXIT_ON_CLOSE(结束窗口所在的应用程序)
4.
JComponent类的子类JMenubar负责创建菜单条
JFrame类有一个将菜单条放置到窗口中的方法:setJMenuBar(JMenuBar bar);该方法将菜单条添加到窗口的顶端,需要注意的是,只能向窗口添加一个菜单条
JComponent类的子类JMenu负责创建菜单
JComponent类的子类JMenuItem负责创建菜单项
为了使菜单项有一个图标,可以用图标类Icon声明一个图标,然后使用其子类ImageIcon类创建一个图标,如:Icon icon=new ImageIcon(”a.gif”);然后菜单项调用setIcon(Icon icon)方法将图标设置为icon
5.
常用组件都是JComponent的子类
JTextField(文本框)允许用户在文本框中输入单行文本
JTextArea(文本区)允许用户在文本区中输入多行文本
JButton(按钮)允许用户单击按钮
JLabel(标签)标签为用户提供提示信息
JCheckBox(复选框)为用户提供多项选择
JRadioButton(单选按钮)为用户提供单项选择
JComboBox(下拉列表)为用户提供单项选择。用户可以在下拉列表中看到第一个选项和它旁边的箭头按钮,当用户单击箭头按钮时,选项列表打开
JPasswordField(密码框)允许用户在密码框中输入单行密码,密码框的默认回显字符是’*’。密码框可以使用setEchoChar(char c)重新设置回显字符,当用户输入密码时,密码框只显示回显字符。密码框调用char[]getPassword()方法可以返回用户在密码框中输入的密码
6.
中间容器必须被添加到底层容器中才能发挥作用
JPanel创建一个面板,JPanel面板的默认布局是FlowLayout布局
JTabbedPane容器作为中间容器。当用户向JTabbedPane容器添加一个组件时,JTabbedPane容器就会自动为该组件指定一个对应的选项卡,即让一个选项卡对应一个组件
选项卡默认在JTabbedPane容器的顶部,从左向右依次排序
JTabbedPane容器可以使用add(String text,Component c);方法将组件c添加到JTabbedPane容器中,并指定和组件c对应的选项卡的文本提示是text
可以使用构造方法public JTabbedPane(int tabPlacement)创建JTabbedPane容器,选项卡的位置有参数tabPlacement指定,该参数的有效值为JTabbedPane,TOP、JTabbeedPane.BOTTOM、JTabbedPane.LEFT和JTabbedPane。RIGHT
7.
滚动窗格JScrollPane只可以添加一个组件。JTextArea不自带滚动条,因此就需要把文本区放到一个滚动窗格中
拆分窗格JSplitPane的两个常用的构造方法如下:
JSplitPane(int a,Component b,Component c)参数a取JSplitPane的静态常数HORIZONTAL_SPLIT或VERTICAL_SPLIT,以决定是水平还是垂直拆分
JSplitPane(int a,boolean b、Component c、Component d)参数a取JSplitPane的静态常量HORIZONTAL_SPLIT或VERTICAL_SPLIT,已决定是水平还是垂直拆分,参数b决定当拆分线移动时,组件是否连续变化(true是连续)
JLayeredPane分层窗格使用add(Jcomponent com,int layer);添加组件com,并指定com所在的层,其中参数layer的取值JLayeredPane类中的类常量:DEFAULT_LAYER、PALETTE_LAYER、MODAL_LAYER、POPUP_LAYER、DRAG_LAYER
添加到同一层上的组件,如果发生重叠,后添加的会遮挡先添加的组件。分层窗格调用public void setLayer(Component c,int layer)可以重新设置组件c所在的层,调用public int getLayer(Component c)可以获取组件c所在的层数
8.
FlowLayout类的一个常用构造方法如下:FlowLayout();该构造方法可以创建一个居中对齐的布局对象。
BorderLayout布局使空间简单地划分为东、西、南、北、中5个区域,中间的区域最大
使用CardLayout的容器可以容纳多个组件,这些组件被层叠放入容器中,最先加入容器的是第一张(在最上面),一次向下排序。使用该布局的特点是,同一时刻容器只能从这些组件中选出一个来显示。
GridLayout是使用较多的布局编辑器,其基本布局策略是把容器划分成若干行乘若干列的网格区域
Null布局容器可以准确地定位组件在容器中的位置和大小
BoxLayout布局:
使用Bos类的类方法createHorizontalBox()获得一个行型盒式容器;使用Box类的类方法createVerticalBox()获得一个列型盒式容器
教材学习中的问题和解决过程
参考资料
《java 2实用教程(第5版)》