辽宁自考 Java语言程序设计 课程代码 01019 备考整理(四)
Java语言程序设计 备考整理 因教材过于陈旧建议仅作复习使用
- Java语言程序设计
- 第8章 图形用户界面
- Swing类的层次结构
- 容器
- 窗口容器
- 对话框容器
- 面板容器
- 组件
- 组件布局管理
- 顺序布局管理器
- 边界布局管理器
- 卡片布局管理器
- 网格布局管理器
- 组件的精确定位方式
- 事件处理机制
- Jav的事件处理机制
- 通过自定义内部类创建监听器对象
- 在注册时通过匿名类直接创建监听器对象
- 通过主类创建监听对象
- 实现多个事件接口的方式
- 事件适配器类与内部类
- 内部类
- 创建容器与组件的基本步骤小结
- 第9章 高级组件
- 菜单栏
- 工具栏
- 树形菜单
- 选项卡面板
- JApplet容器
- 表格
Java语言程序设计
考试用书: 《Java语言程序设计》(第三版)
出版社:清华大学出版社
作者:邵丽萍、绍光亚、张后扬
出版时间:2008
第8章 图形用户界面
Swing类的层次结构
容器
可以添加其它组件的组件被称为容器。
窗口容器
JFram是一个用来创建窗口的类,它是一个顶级容器框架,在其中可以添加各种组件。
使用方式:
import javax.swing.*;public class JF0 extends JFrame {public JF0 (String s){super(s); //调用父类构造方法setBounds(200,200,500,400); //设置大小setVisible(true); //设置是否显示try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // 显示窗口外观}catch (Exception e){setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //处理如果外观显示未成功 则关闭窗口对象}}
}
对话框容器
对话框(Dialog类)是GUI中常见的窗口对象。对话框和普通窗口最大的区别是对话框是依附在某个窗口上的,一旦它所依附的窗口关闭了,对话框也要随着关闭。在对话框窗口中也可以添加其它组件,所以它也是一个容器。
import javax.swing.*;public class JD extends JDialog {public JD (JFrame f, String s){super(f,s); //调用父类构造方法setBounds(300,300,200,200); //设置大小setVisible(true); //设置是否显示setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); //设置默认关闭方法}
}
面板容器
面板(JPanel)类是一个无边框的容器,可以包含其它面板或组件,使用面板的目的是为了区分层次,分区域管理各种组件。面板与顶级容器不同,它是一个中间容器,它即是容器又是组件。一个窗口中可以添加多个面板对象。
import javax.swing.*;
import java.awt.*;public class JP1 extends JFrame {public JP1(JFrame f, int x, int y, int w, int h){Container c = getContentPane(); //通过JFrame 自带的方法创建面板c.setLayout(null);c.setBackground(Color.ORANGE);f.add(c); //添加面板到 fJPanel p = new JPanel(); //通过new的方式创建面板p.setBounds(x,y,w,h);p.setBackground(Color.blue);c.add(p);//添加面板到面板c}
}JP1 jp1 = new JP1(new JF0("添加面板的窗口"),100,50,200,200);
组件
组件(JComponent)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器内。通过容器的add方法可以吧组件加入到容器中。
这部分主要是实践会考,还是多练习熟悉方法和结构。
JLabel //标签组件
JButton //按钮组件
TextField //文本框组件
JTextArea //文本区组件,多行文本
JRadioButton //单选按钮组件
JCheckBox //复选框组件
JComBoBox //下拉列表组件
组件布局管理
组件布局管理器管理各个组件的位置,在容器中使用setLayout方法可以调用不同的布局管理器。
顺序布局管理器
顺序布局(FlowLayout) 是最基本的布局管理器。把组件一个一个从左到右排列,一行排满之后转到下一行继续排列。它会根据容器大小随时调整容器中的组件大小。
边界布局管理器
边界布局(BorderLayout)管理器把容器分为5个区:北区、南区、东区、西区和中区。
边界布局只能容纳5个组件即东、南、西、北、中。(可以嵌套组件,但是嵌套的一层只能有5个组件)
卡片布局管理器
卡片布局(CardLayout)管理器可以管理多个组件,它将组件像卡片一样叠放起来,每次只显示一个。
网格布局管理器
网格布局(GridLayout)管理器把容器区域分成若干个网格,每个网格可以放一个组件。
创建网格布局管理器时可以给出网格的行数和列数。
组件的精确定位方式
容器中存放组件也可以不用布局管理器。
//第一步
setLayout(null); //先通过设置布局管理器为null
//第二步
setBounds(int x, int y, int w, int h); //xy是组件左上角的坐标点,wh是组件的大小。
事件处理机制
Jav的事件处理机制
- 事件:程序和用户的交互是通过事件实现的。实现发生后会交给事件处理的方法进行处理,如果没有编写处理方法,程序就不能和用户交互,事件将被忽略。
- 事件处理方法:当发生事件时做出的反应,通过监听器对象可以对事件源对象进行监听,当监听到事件时,就可以调用事件处理方法处理事件问题。
- 事件处理模型:事件源对象、事件监听器对象、事件对象。
(1)能产生事件的组件叫做事件源,如按钮。
(2)事件监听器注册在事件源对象(按钮或包含按钮的容器上),用来监听事件是否发生,当事件发生时将调用事件处理方法解决问题。
(3)事件对象用来封装已发生的事件信息,在事件发生后,将信息传递给事件处理方法进行处理。
通过自定义内部类创建监听器对象
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class JB1 extends JFrame {public JB1(JFrame f, JPanel p){f.add(p);p.add(new Label("按一下可以听到响声", Label.CENTER));Button b = new Button("按钮");p.add(b);BHandler h = new BHandler();b.addActionListener(h);}public static void main(String args[]){JB1 jb1 = new JB1(new JF0("单击按钮事件"), new JPanel());}private class BHandler implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {Toolkit.getDefaultToolkit().beep();}}
}
在注册时通过匿名类直接创建监听器对象
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class JB2 extends JFrame {public JB2(JFrame f, JPanel p){f.add(p);p.add(new Label("按一下可以听到响声", Label.CENTER));Button b = new Button("按钮");p.add(b);b.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {Toolkit.getDefaultToolkit().beep();}});}public static void main(String args[]){JB1 jb1 = new JB1(new JF0("单击按钮事件"), new JPanel());}}
通过主类创建监听对象
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;public class JB3 extends JFrame implements ActionListener {public JB3(JFrame f, JPanel p){f.add(p);p.add(new Label("按一下可以听到响声", Label.CENTER));Button b = new Button("按钮");p.add(b);b.addActionListener(this);}public static void main(String args[]){JB1 jb1 = new JB1(new JF0("单击按钮事件"), new JPanel());}@Overridepublic void actionPerformed(ActionEvent e) {Toolkit.getDefaultToolkit().beep();}
}
实现多个事件接口的方式
一般是在主类实现多个接口,然后注册这些接口的实现。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;public class DrawLine extends Applet implements MouseListener, MouseMotionListener {int x1, y1, x2 , y2;public void init(){addMouseListener(this);addMouseMotionListener(this);}public void pain(Graphics g){g.drawLine(x1, y1, x2 , y2);}@Overridepublic void mouseClicked(MouseEvent e) {}@Overridepublic void mousePressed(MouseEvent e) {x1 = e.getX();y1 = e.getY();}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic void mouseExited(MouseEvent e) {}@Overridepublic void mouseDragged(MouseEvent e) {x2 = e.getX();y2 = e.getY();repaint();}@Overridepublic void mouseMoved(MouseEvent e) {}
}
事件适配器类与内部类
java.awt.event 包中还声明了一组带Adapter标记的类,称为适配器类。它们是一些抽象类,其中声明方法与接口方法相同。使用Adapter 可以不用实现全部的方法,实现精简代码的目的。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;public class DrawLine extends Applet implements MouseListener, MouseMotionListener {int x1, y1, x2 , y2;public void init(){addMouseListener(new M1());addMouseMotionListener(new M2());}public void pain(Graphics g){g.drawLine(x1, y1, x2 , y2);}private M1 extends MouseAdpter {public void mousePressed(MouseEvent e) {x1 = e.getX();y1 = e.getY();}}private M2 extends MouseMotionAdpter {public void mouseDragged(MouseEvent e) {x2 = e.getX();y2 = e.getY();repaint();}}
}
内部类
Java中可以把一个类声明为另一个类的成员。这样的类被称为内部类。
内部类可以无条件的使用主类的所有成员,包括私有成员。内部类的作用域仅限于包容它的主类。
内部类可以被声明为static、最终类、抽象类。
创建容器与组件的基本步骤小结
(1)创建顶级容器(通常为窗体对象)。
(2)创建内容面板,设置背景颜色,设置布局管理器。
(3)创建普通面板,设置背景颜色,设置位置、大小,设置布局管理器。
(4)创建组件,设置背景颜色,设置其位置、大小、字体等。
(5)将面板添加到窗口,将组件添加到指定面板。
(6)创建事件监听器,实现事件接口方法。
(7)给事件源注册监听器。
第9章 高级组件
菜单栏
菜单栏是图形用户界面的重要组成部分,主要由菜单棒(MenuBar)、菜单(Menu)、菜单项(MenuItem)和复选菜单项(CheckBoxMenuItem)等对象组成。
工具栏
树形菜单
选项卡面板
JApplet容器
表格
辽宁自考 Java语言程序设计 课程代码 01019 备考整理(四)相关推荐
- 辽宁自考 Java语言程序设计 课程代码 01019 备考整理(一)
Java语言程序设计 备考整理 因教材过于陈旧建议仅作复习使用 Java语言程序设计 第1章 Java快速入门 1.1 Java简介: 1.2 Java的开发环境与运行环境: 1.3 初步了解Java ...
- 2012年1月java_全国2012年1月自考Java语言程序设计(一)试题及答案.doc
全国2012年1月自考Java语言程序设计(一)试题及答案 全国2012年10月自考Java语言程序设计(一)试题 课程代码:04747 选择题部分 一.单项选择题 本大题共10小题,每小题1分,共1 ...
- abcdefg顺序Java打印,全国2012年10月自考JAVA语言程序设计(一)试题及答案
全国2012年10月自考Java语言程序设计(一)试题 课程代码:04747 选择题部分 一.单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的, ...
- java语言程序设计勇_自考Java语言程序设计(一)串讲笔记
自考Java语言程序设计(一)串讲笔记.txt43风帆,不挂在桅杆上,是一块无用的布:桅杆,不挂上风帆,是一根平常的柱:理想,不付诸行动是虚无缥缈的雾:行动,而没有理想,是徒走没有尽头的路.44成功的 ...
- 将数所有奇数移到数组前java_全国2014年4月自考Java语言程序设计(一)真题
绝密★考试结束前 全国2014年4月高等教育自学考试 Java语言程序设计(一)试题 课程代码:04747 请考生按规定用笔将所有试题的答案涂.写在答题纸上. 选择题部分 注意事项: 1.答题前,考生 ...
- 【4747】java语言程序设计(一)2011年10月考试复习资料_全国2011年10月自考Java语言程序设计(一)试题3...
30.以下程序的界面有一个文本区text,一个按钮button.程序运行时,单击按钮,则? 将文本区中的内容输出到out,其中out为BufferWriter类的一个对象.? public void ...
- 教育技术学习《基于 CPS 模型的翻转课堂教学模式构建——以“JAVA 语言程序设计”课程为例》笔记
作者河南师范大学叶海智教授2016现代教育技术 本文中提到的CPS即创造性问题解决的英文首字母,是美国学者帕恩斯1981年文章提出的.是这样,不要因为感觉自己教育学的概念不深入就敢去应用,或者太老了怕 ...
- JAVA语言程序设计(基础篇)第四章——课后习题解
在这里,我选择了几个知识点涉及稍微较多的课后习题进行求解(若有错误,欢迎斧正) 文章目录 4.1(几何:五边形的面积) 4.2(最大圆距离) 4.5(几何:正多边形的面积) 4.6(圆上的随机点) 4 ...
- JAVA语言程序设计(基础篇)——第四章例题
随机产生一个随机的两位数字,提示用户输入一个两位数字,根据以下规则确定用户是否中彩票: 如果用户输入的数字完全匹配彩票中的数字,奖金为10000美元. 如果用户输入的所有数字匹配彩票中的所有数字,奖金 ...
最新文章
- 转:读AD里特殊的属性in C#
- 如何在SAP云平台上使用MongoDB服务 1
- [vue] 使用vue渲染大量数据时应该怎么优化?说下你的思路!
- c语言一个数组后添加元素append,jQuery 追加元素、拼接元素的方法总结(append、html、insertBefore、before等)...
- 新自动化文档生成-go语言-docx生成
- 数据库原理—常用的DBS产品简介(六)
- 用c#语言制作ktv点歌系统,KTV点歌系统的设计与实现的设计和实现(C#,C/S,Access)
- log explorer for sql 不存在或访问被拒绝_原创干货 | 未授权访问漏洞批量化
- 二叉树的前中后序遍历的非递归形式【Java】
- 防saq注入_盛大在线另一分站某SQL注入
- java 斗地主出牌算法_斗地主智能(AI)出牌算法
- python项目 from models import * 报错
- UI设计中面性图标设计总结
- PCL官网学习OpenNI Grabber 调用奥比中光Astra s 遇到问题openni2_grabber.cpp @ 325 : No devices connected.
- java 实现回收站功能,回收站功能在 Linux 中的实现
- python的下载安装以及两种打开方式
- 超级跑车法拉利的历史
- js点击使内容变成可编辑状态
- 大数据+咖啡因| 可口可乐的转型升级探索
- Eclipse配置tomcat服务器及tomcat简介