黑马程序员_java语言_GUI
2015-06-05 00:50
447 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
###19.01_GUI(如何创建一个窗口并显示)
GUI 是 Graphical User Interface 的缩写,即「图形使用者接口」。在传统的操作系统 MS-DOS 文字模式下,屏幕上显示的是单调的文字接口,使用者必须透过键盘输入指令,才能操作计算机。麻烦的是如果你的英文不好,光是背指令,就够让你头痛了。
所幸, Windows 95 以后的版本中,GUI 的操作环境以图形及窗口方式显示,使用者只要用鼠标进行操作,英文再怎么不行,照样可以看图标找到需要的指令来进行操作。所以 GUI 接口的亲和性设计,可说是操作系统设计上的一大突破
对于GUI的结构我们做一个简单的表示:
Component: 它代表的是界面上 显示的所有的组件,可在屏幕上显示,并可与用户进行交互。典型图形用户界面中的按钮、复选框和滚动条
* |- Button 按钮
* |- Canvas 画布
* |- Checkbox 复选框
* |- Label 标签,用来在页面显示文本信息,不能够编辑
* |- List 可滚动的列表
* |- Scrollbar 滚动条
* |- JComponent
|- JTable 表格
* |- TextComponent
* |- TextField 单行文本框
* |- TextArea 多行文本框(文本域)
* |- Container 容器
* |- Window 窗口
* |- Frame 窗体
* |- Dialog 对话框
* |- FileDialog 文件对话框
* |- Panel 面板
* Graphical User Interface(图形用户接口)。
* Frame f = new Frame(“my window”);
f.setLayout(new FlowLayout());//设置布局管理器
f.setSize(500,400);//设置窗体大小
f.setLocation(300,200);//设置窗体出现在屏幕的位置
f.setIconImage(Toolkit.getDefaultToolkit().createImage("qq.png"));
f.setVisible(true);
首先了解一下Frame:
Frame 是带有标题和边框的顶层窗口
* 构造方法:
* public Frame() 构造一个最初不可见的 Frame 新实例()。Frame 的标题为空。
*
* 方法:
* public void show() 方法 显示窗口, 过时了
* public void setVisible(boolean b)根据参数 b 的值显示或隐藏此组件。
* public void setTitle(String title) 设置标题
*
* public void setSize(int width, int height) 设置窗口大小
* public void setSize(Dimension d) 设置窗口大小,传一个尺寸对象
* //Dimension 类封装单个对象中组件的宽度和高度
*
* public void setLocation(int x, int y) 设置窗口位置
* public void setLocation(Point p)设置窗口位置,传一个坐标点对象
###19.02_GUI(布局管理器)
* FlowLayout(流式布局管理器)
* 从左到右的顺序排列。
* Panel默认的布局管理器。
* BorderLayout(边界布局管理器)
* 东,南,西,北,中
* Frame默认的布局管理器。
* GridLayout(网格布局管理器)
* 规则的矩阵
* CardLayout(卡片布局管理器)
* 选项卡
* GridBagLayout(网格包布局管理器)
* 非规则的矩阵
###19.03_GUI(窗体监听)
Frame f = new Frame("我的窗体");
//事件源是窗体,把监听器注册到事件源上
//事件对象传递给监听器
###19.04_GUI(鼠标监听)
###19.05_GUI(键盘监听和键盘事件)
键盘监听:
* 事件监听主要是针对awt包下的组件使用
* 在对swing包下的组件使用的时候,可能会产生问题
###19.06_设计模式(适配器设计模式)
* a.什么是适配器
* 在使用监听器的时候, 需要定义一个类事件监听器接口.
* 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
* 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
* b.适配器原理
* 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
* 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.
###19.07_GUI(需要知道的)
* 事件处理
* 事件: 用户的一个操作
* 事件源: 被操作的组件
* 监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法
###19.01_GUI(如何创建一个窗口并显示)
GUI 是 Graphical User Interface 的缩写,即「图形使用者接口」。在传统的操作系统 MS-DOS 文字模式下,屏幕上显示的是单调的文字接口,使用者必须透过键盘输入指令,才能操作计算机。麻烦的是如果你的英文不好,光是背指令,就够让你头痛了。
所幸, Windows 95 以后的版本中,GUI 的操作环境以图形及窗口方式显示,使用者只要用鼠标进行操作,英文再怎么不行,照样可以看图标找到需要的指令来进行操作。所以 GUI 接口的亲和性设计,可说是操作系统设计上的一大突破
对于GUI的结构我们做一个简单的表示:
Component: 它代表的是界面上 显示的所有的组件,可在屏幕上显示,并可与用户进行交互。典型图形用户界面中的按钮、复选框和滚动条
* |- Button 按钮
* |- Canvas 画布
* |- Checkbox 复选框
* |- Label 标签,用来在页面显示文本信息,不能够编辑
* |- List 可滚动的列表
* |- Scrollbar 滚动条
* |- JComponent
|- JTable 表格
* |- TextComponent
* |- TextField 单行文本框
* |- TextArea 多行文本框(文本域)
* |- Container 容器
* |- Window 窗口
* |- Frame 窗体
* |- Dialog 对话框
* |- FileDialog 文件对话框
* |- Panel 面板
<span style="font-size:14px;">public class FrameDemo { public static void main(String[] args) { //创建窗体对象 //设置标题 Frame frame = new Frame("适配器设计模式"); //设置尺寸大小 frame.setSize(500, 500); //设置位置 frame.setLocation(400, 100); //添加事件监听 //WindowAdapter接收窗口事件的抽象适配器类 frame.addWindowListener(new WindowAdapter() { //关闭窗口 @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); //显示窗体 frame.setVisible(true); } }</span>
* Graphical User Interface(图形用户接口)。
* Frame f = new Frame(“my window”);
f.setLayout(new FlowLayout());//设置布局管理器
f.setSize(500,400);//设置窗体大小
f.setLocation(300,200);//设置窗体出现在屏幕的位置
f.setIconImage(Toolkit.getDefaultToolkit().createImage("qq.png"));
f.setVisible(true);
<span style="font-size:14px;">public class FrameDemo { public static void main(String[] args) { //创建窗体 //事件源: 窗体, 银行 Frame frame = new Frame(); //设置标题 frame.setTitle("人来银行"); //设置尺寸大小 frame.setSize(500, 500); //设置位置 frame.setLocation(400, 100); //事件监听: 窗口监听器 摄像头,保安 //public synchronized void addWindowListener(WindowListener l) //new MyWindowListener();//创建一个保安 //创建一个保安,来监听银行要发生的事件 frame.addWindowListener(new MyWindowListener()); //显示 frame.setVisible(true); } } </span>
首先了解一下Frame:
Frame 是带有标题和边框的顶层窗口
* 构造方法:
* public Frame() 构造一个最初不可见的 Frame 新实例()。Frame 的标题为空。
*
* 方法:
* public void show() 方法 显示窗口, 过时了
* public void setVisible(boolean b)根据参数 b 的值显示或隐藏此组件。
* public void setTitle(String title) 设置标题
*
* public void setSize(int width, int height) 设置窗口大小
* public void setSize(Dimension d) 设置窗口大小,传一个尺寸对象
* //Dimension 类封装单个对象中组件的宽度和高度
*
* public void setLocation(int x, int y) 设置窗口位置
* public void setLocation(Point p)设置窗口位置,传一个坐标点对象
<span style="font-size:14px;">public class FrameDemo { public static void main(String[] args) { //创建一个窗口 Frame f = new Frame(); //设置一个标题 f.setTitle("给我一个标题"); //设置窗口位置 f.setLocation(500, 250);//单位: 像素 //设置窗口大小 f.setSize(300, 200); //显示窗口 //f.show(); f.setVisible(true); } }</span>
###19.02_GUI(布局管理器)
* FlowLayout(流式布局管理器)
* 从左到右的顺序排列。
* Panel默认的布局管理器。
* BorderLayout(边界布局管理器)
* 东,南,西,北,中
* Frame默认的布局管理器。
* GridLayout(网格布局管理器)
* 规则的矩阵
* CardLayout(卡片布局管理器)
* 选项卡
* GridBagLayout(网格包布局管理器)
* 非规则的矩阵
<span style="font-size:14px;">//创建窗体 JFrame frame = new JFrame("键盘监听"); //设置大小与位置 frame.setBounds(200, 200, 400, 200); //设置窗口关闭 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出后关闭 //设置窗体的布局方式 frame.setLayout(null);//帧布局 //----------------------------------------------- //创建一个标签 Label label = new Label("请输入QQ号码"); label.setBounds(150, 30, 100, 30); frame.add(label);</span>
###19.03_GUI(窗体监听)
Frame f = new Frame("我的窗体");
//事件源是窗体,把监听器注册到事件源上
//事件对象传递给监听器
<span style="font-size:14px;"> f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { //退出虚拟机,关闭窗口 System.exit(0); } });</span>
###19.04_GUI(鼠标监听)
<span style="font-size:14px;"><span style="color:#000000;"> //蓝色按钮,添加鼠标监听 blueButton.addMouseListener(new MouseAdapter() { //进入按钮范围 @Override public void mouseEntered(MouseEvent e) { //设置背景色颜色为 蓝色 frame.setBackground(Color.BLUE); } //退出按钮范围 @Override public void mouseExited(MouseEvent e) { //设置背景色颜色为白色 frame.setBackground(Color.WHITE); } }); </span> </span>
###19.05_GUI(键盘监听和键盘事件)
键盘监听:
* 事件监听主要是针对awt包下的组件使用
* 在对swing包下的组件使用的时候,可能会产生问题
<span style="font-size:14px;"> //创建一个文本框 //JTextField field = new JTextField(40); TextField field = new TextField(40); field.setBounds(150, 80, 100, 30); frame.add(field); //---------------------------------------------- //为文本框 添加 键盘监听 field.addKeyListener(new KeyAdapter() { //按键按下时激活 @Override public void keyPressed(KeyEvent e) { //int code = e.getKeyCode(); char ch = e.getKeyChar(); //判断当前按下的按键是否是数字 //if (code >= 48 && code <= 57) { //是数字: 在文本框中显示 //} else { //否数字: 阻止 当前按键对应的字符,在文本框中显示 // e.consume(); //} </span>
###19.06_设计模式(适配器设计模式)
* a.什么是适配器
* 在使用监听器的时候, 需要定义一个类事件监听器接口.
* 通常接口中有多个方法, 而程序中不一定所有的都用到, 但又必须重写, 这很繁琐.
* 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要的方法即可.
* b.适配器原理
* 适配器就是一个类, 实现了监听器接口, 所有抽象方法都重写了, 但是方法全是空的.
* 目的就是为了简化程序员的操作, 定义监听器时继承适配器, 只重写需要的方法就可以了.
<span style="font-size:14px;">/* * 通过适配器设计模式来完成窗口关闭 */ public class FrameDemo { public static void main(String[] args) { //创建窗体对象 //设置标题 Frame frame = new Frame("适配器设计模式"); //设置尺寸大小 fra 9b26 me.setSize(500, 500); //设置位置 frame.setLocation(400, 100); //添加事件监听 //WindowAdapter接收窗口事件的抽象适配器类 frame.addWindowListener(new WindowAdapter() { //关闭窗口 @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); //显示窗体 frame.setVisible(true); } }</span>
###19.07_GUI(需要知道的)
* 事件处理
* 事件: 用户的一个操作
* 事件源: 被操作的组件
* 监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法
相关文章推荐
- Codeforces Round #252 (Div. 2) B. Valera and Fruits(模拟)
- CSU 1532: JuQueen(线段树)
- Let met ask you a question
- UI设计师到底是干什么的
- 为什么远丰ERPbuilder是企业首选的电商ERP系统
- soupui接口测试
- iOS: 剪裁UIImage部分不规则区域
- stack, deque 和 queue的对比
- uva540 Team Queue by sixleaves
- 【算法】快速排序法:Quicksort
- LeetCode Unique Paths II(dp)
- Duilib技巧:背景图片平铺
- ios CGContext学习,从UIColor 声称img
- UISlider 的基本用法
- CSUOJ 1638 Continued Fraction
- [Algorithms] Sorting Algorithms (Insertion Sort, Bubble Sort, Merge Sort and Quicksort)
- iOS-学习笔记-UI-第三天
- UITableView的性能优化
- Android 如何在自定义界面上启用输入法 (How to enable inputmethod for the custom UI)
- SPOJ QTREE Query on a tree