201711671233《Java程序设计》第9周学习总结
一、教程学习内容总结
这周主要学习了窗口,常用组件与布局,处理事件,MVC结构,对话框。
Java String概述
通过图形用户界面(GUI),用户和程序之间可以方便地进行交互。
组件:Component类的子类或间接子类创建的对象。
容器:Container的子类或间接子类创建的对象。
可以向容器添加组件。Container类提供了一个public方法add(),一个容器可以调用该方法将组件添加到该容器中。
removeAll()方法可以移掉容器中的全部组件,调用remove(Component c)方法可以移掉容器中参数c指定的组件。
容器添加或移掉组件,应让容器调用validate()方法。
(一)窗口
窗口:JFrame类是底层容器。
对话框:JDialog类是底层容器。
其他组件必须被添加到底层容器。
窗口默认被系统添加到显示器屏幕上,因此不允许将一个窗口添加到另一个容器中。
JFrame()创建一个无标题的窗口。
菜单条、菜单、菜单项都是窗口常用的组件,都是JComponent类的子类。菜单放在菜单条里,菜单项放在菜单里。
菜单条:JMenubar类创建。JMenubar的一个实例就是一个菜单条。
菜单:JMenu类创建。是JMenuItem类的子类,菜单也是一个菜单项。
菜单项:JMenuItem类。
菜单上的图标:图标类Icon声明一个图标,使用其子类ImageIcon类创建图标。
(二)常见组件与布局
常用组件:(都是JComponent类的子类)
JTextField(文本框):在文本框中输入单行文本。
JTextArea(文本区):在文本区中输入多行文本。
JButton(按钮):单击按钮。
JLabel(标签):标签为用户提供提示信息。
JCheckBox(复选框):提供多项选择。复选框右边有个名字,并提供两种状态,一种是选中,一种是未选中。
JRadioButton(单选按钮):提供单项选择。
JComboBox(下拉列表):提供单项选择。在下拉列表中看到第一个选项和旁边的箭头按钮,单击箭头按钮,选项列表打开。
JPasswordField(密码框):在密码框中输入单行密码,密码框的默认回显字符是*。
常见容器:
JPanel面板:使用JPanel创建一个面板,再向这个面板添加组件,然后把这个面板添加到其他容器中。JPanel面板的默认布局是FlowLayout布局。
JTabbedPane选项卡窗格:JTabbedPane容器作为中间容器。向JTabbedPane容器添加一个组件时,JTabbedPane容器就会自动为该组件指定一个对应的选项卡,即一个选项卡对应一个组件。选项卡默认在JTabbedPane容器的顶部,从左向右依次排列。
滚动窗格JScrollPane:滚动窗格只能添加一个组件。可以把一个组件放到一个滚动窗格中,然后通过滚动条来观看该组件。
拆分窗格JSplitPane:拆分窗格就是背分成两部分的容器,有水平拆分和垂直拆分。
JLayeredPane分层窗格:分层窗格分成5层,用来处理重叠问题。
常用布局:
FlowLayout布局:居中对齐,按先后顺序从左向右排列,一行排满后转向下一行。
BorderLayout布局:容器使用该布局,容器空间简单划分成东、南、西、北、中五个区域。
CardLayout布局:可以容纳多个组件,这些组件被层叠放入容器中。最先加入容器的是第一张,每次只能显示其中一张,被显示的组件将占据所有的容器空间。
GridLayout布局:把容器划分为若干行乘若干列的网格区域,组件位于这些划分出来的小格中。使用GridLayout布局的容器最多可以添加m×n个组件。每个网格都是相同大小并且强制组件与网格的大小相同。
null布局:空布局可以准确地定位组件在容器中的位置和大小。
BoxLayout布局:Box容器称为一个盒式容器,可以利用容器的嵌套,将某个容器嵌入几个盒式容器。
(三)处理事件
事件处理模式:事件源、监视器、处理事件的接口。
事件源:能产生事件的对象。
监视器:事件源通过调用相应的方法将某个对象注册为自己的监视器。
处理事件的接口:监视器这个对象会自动调用一个方法来处理事件(对象只有调用方法才能产生行为)。Java规定:为了让监视器这个对象能对事件源发生的事情进行处理,创建该监视器对象的类必须声明实现相应的接口,即必须在类体中重写接口中所有方法,当事件源发生事件时,监视器自动调用被类重写的接口方法。
ActionEvent事件:文本框、按钮。菜单项、密码框和单选按钮。
ItemEvent事件:选择框和下拉列表。
DocumentEvent事件:在文本区进行文本编辑,使文本内容发生变化。
MouseEvent事件:鼠标事件,如鼠标进入组件、退出组件、在组件上方单击鼠标、拖动鼠标等都触发鼠标事件。
焦点事件:组件可以触发焦点事件。
键盘事件:当按下、释放或敲击键盘上一个键时就触发了键盘事件。
窗口事件。
匿名类实例或窗口做监视器。
事件总结:授权模式、接口回调、方法绑定、保持松耦合。
(四)MVC结构
模型-视图-控制器简称为MVC。
模型:存储数据的对象。
视图:为模型提供数据显示的对象。
控制器:处理用户的交互操作,对用户的操作做出响应,让模型和视图进行必要的交互。
(五)对话框
有模式的对话框:当这个对话框处于激活状态时,只让程序响应对话框内部的事件,阻塞其他线程的执行,用户不能再激活对话框所在程序中的其他窗口,直到该对话框消失不可见。
无模式的对话框:处于激活状态时,能再激活其他窗口,也不阻塞其他线程的执行。
消息对话框,输入对话框,确认对话框,颜色对话框,自定义对话框。
二、教程学习中的问题和解决过程
一开始有了很多新的概念,比如窗口、容器、组件、布局等,看了很多次概念,然后看着书上的代码,慢慢理解,然后就明白了。
三、学习进度条
| 代码行数 (新增/累计) | 博客量 (新增/累计) | 学习时间 (新增/累计) |
目标 | 2500行 | 10篇 | 200小时 |
第一周 | 30 | 1 | 10 |
第二周 | 30/60 | 1/2 | 10/20 |
第三周 | 30/90 | 1/3 | 10/30 |
第四周 | 30/120 | 1/4 | 10/40 |
第五周 | 30/150 | 1/5 | 10/50 |
第六周 | 30/180 | 1/6 | 10/60 |
第七周 | 50/230 | 1/7 | 10/70 |
第八周 | 100/330 | 1/8 | 10/80 |
第九周 | 100/430 | 1/9 | 10/90 |
四、参考资料
Java2实用教程(第5版)