第十二周课程总结
第十二周课程总结
本周我们主要学习的是容器的应用,深入学习了布局管理器和基本容器JFrame容器。所有AWT组件都应该放到容器里面,并可以设置其他位置、大小,所有的容器都是Component的子类,
1.JPanel面板
经常使用JPanel先创建一个面板,在向这个面板添加组件,然后把这个面板添加到其他容器中。
JPanel面板的默认布局是FlowLayout布局**
2.JScrollPane窗格(滚动窗格)
滚动面板只能添加一个组件,可以把一个组件放到一个滚动窗格中,然后通过滚动条来观看该组件。
比如:
JTextArea不自带滚动条,因此需要把文本区放到一个滚动窗格中:
```
JScrollPane scroll = new JScrollPane(new JTextArea());
**3.JSplitPane窗格(拆分窗格)**
>
拆分窗格就是被分成***两部分***的容器。
拆分窗格有两种类型,一种是水平(`HORIZONTAL_SPLIT`),一种是垂直(`VERTICAL_SPLIT`)。
水平拆分窗格用一条拆分线(Divider)把窗口分为左右两部分,拆分线可以左右移动。
垂直拆分窗格用一条拆分线把窗口分为上下两部分,拆分线可以垂直移动。
JSplitPane的构造方法有:
①JSplitPane();
②JSplitPane(int a,Component b,Component c);
(1)参数a取JSplitPane的静态常量HORIZONTAL_SPLIT或VERTICAL_SPLIT,以决定是水平拆分还是垂直拆分。
(2)参数b,c决定放置的组件
③JSplitPane(int a,boolean b,Component c,Component d)
(1)参数a,c,d同上a,b,c
(2)参数b决定当拆分线移动时,组件是否连续变化(true是连续)。
**4.JTabbedPanel(标签面板)**
**构造方法**
public JTabbedPane() 创建一个空的 TabbedPane ,默认标签位置为 JTabbedPane.TOP
public JTabbedPane(int tabPlacement) 创建空 TabbedPane与任一指定的选项卡放置: JTabbedPane.TOP , JTabbedPane.BOTTOM , JTabbedPane.LEFT ,或 JTabbedPane.RIGHT 。
public JTabbedPane(int tabPlacement,int tabLayoutPolicy)创建一个空的TabbedPane与指定的选项卡布局和选项卡布局策略。标签布局策略可以是: JTabbedPane.WRAP_TAB_LAYOUT或JTabbedPane.SCROLL_TAB_LAYOUT 。
![](https://img2018.cnblogs.com/blog/1585170/201911/1585170-20191115131958700-1811478845.png)
5.**JDesktopPane类**
**常用方法:**
getAllFrames():以数组的形式返回桌面中当前显示的所有JInternalFrame
getSelectedFrame():获得桌面中当前被选中的JInternalFrame,如果没有被选中的JInternalFrame,则返回null
removeAll():从桌面中移除所有的JInternalFrame
remove(int index):从桌面中移除位于指定索引的JInternalFrame
setSelectedFrame(JInternalFrame f):设置指定的JInternalFrame为当前被选中的窗体
setDragMode(int dragMode):设置窗体的拖动模式,入口参数值为LIVE_DRAG_MODE(在拖动窗体的过程中连续重绘被拖动的窗体)和OUTLINE_DRAG_MODE(在拖动窗体的过程中只连续重绘被拖动窗体的边框,拖动结束后再重绘被拖动的窗体)
6.**JInternalFrame**
**JInternalFrame构造函数**
JInternalFrame():建立一个不能更改大小、不可关闭、不可最大最小化、也没有标题的Internal Frame。
JInternalFrame(String title):建立一个不能更改大小、不可关闭、不可最大最小化、但具有标题的Internal Frame。
JInternalFrame(String title,boolean resizable):建立一个不可关闭、不可最大最小化、但可变更大小且具有标题的 Internal Frame。
JInternalFrame(String title,boolean resizable,boolean closable):建立一个可关闭、可更改大小、且具有标题,但不可最大化最小化的Internal Frame.
JInternalFrame(String title,boolean resizable,boolean closable,boolean maximizable):建立一个可关闭、可更改大小、 具有标题、可最大化,但不可最小化的Internal Frame.
JInternalFrame(String title,boolean resizable,boolean closable,boolean maximizable,boolean iconifiable):建立一个可关闭、可更改大小、具有标题、可最大化与最小化的Internal Frame.
**JInternalFrame常用方法**
setResizable(boolean b):设置是否允许自由调整大小
setClosable(boolean b):设置是否提供关闭按钮
setMaximizable(boolean b):设置是否提供“最大化”按钮
setIconifiable(boolean b):设置是否提供“最小化”按钮
setSelected(boolean b):设置窗体是否被激活
setFrameIcon(Icon icon):设置窗体标题栏显示的图标
**7.文本组件:**
各软件系统中都存在文本输入框,以方便用户输入数据,在Swing中提供了几类文本输入框:
单行文本输人框: JTextField
密码文本输入框: JPasswordField
多行文本输入框:JFextArea
**8.事件和监听器:**
>
要想让组件发挥作用,必须对所有的组件进行事件处理。
Java中使用事件表示一个对象的状态发生变化。例如当按钮按下时,实际上按钮的状态发生了变化,此时就会产生一个事件,如果要想处理此事件,就需要事件的监听者能不断的监听事件的变化,并根据这些事件进行相应的处理。(注:在Swing编程中,所有的事件类都是EventObject类的子类。)
**9.动作事件及监听处理AotionListener:**
>
一个按钮想要让其变得有意义,就必须使用事件处理,在Swing的事件处理中,可以使用ActionListener接口处理按钮的动作事件。
注:AotionListener接口只定义了一个方法。
public void actionPerformed(ActionEvent e){}