黑马程序员——GUI
2015-10-14 19:21
369 查看
-------
android培训、java培训、期待与您交流! ----------
(一)GUI概述
GUI(Graphical User
Interface):图形用户接口,用图形的方式,来显示计算机操作的界面,这样更方便更直观。
•GUI编程通常为桌面应用编程,不用于WEB编程。
CLI(Command Line User Interface) :命令行用户接口)就是常见的DOS命令行操作。需要记忆一些常用的命令,操作不直观。
AWT与swing:
•AWT(AbstractWindow ToolKit): 抽象窗口工具包。
-不属于扩展包。
-需要调用本地系统方法实现功能。
-依赖于本地。
-属重量级控件。
•swing:javax扩展工具包。
-属于扩展包。
-在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。
-增强了移植性。
-属轻量级控件。
GUI继承体系
在GUI当中一切均为组件。
•左侧为容器组件
•右侧为具体内容组件(基本组件)
(二)容器与内容
容器与内容:
•所有GUI画面均由容器与内容组成。
•容器内可以包含容器。
•容器内可以包含基本组件。
容器类:
主要容器为Container:
•Window窗口,单独窗体容器。可以单独使用。
-Frame:基本窗体框架。
-Dialog:对话框。
•Panel :面板容器。无法单独使用。存在于其他容器当中。
•以Frame为例,完成窗体创建步骤:
-第一步:创建窗体对象
-第二步:设置窗体属性
-第三步:让窗体可见
•创建窗体对象方法:
-public Frame()throws HeadlessException
-public Frame(String title)throws HeadlessException
•设置窗体可见方法:
-public void setVisible(boolean b)
-public void show() 已过时
设置窗体属性方法
•设置窗体属性方法:
-public voidsetResizable(boolean resizable) 设置是否由用户调节窗体大小
-public voidsetTitle(String title) 设置窗体标题,注意与设置名称不同。名称为组件在代码中的名称。并非显示出来。
-public void setSize(int width, int height) 设置窗体尺寸
-public void setSize(Dimension d) 设置窗体尺寸
-Dimension:尺寸抽象类
-public Dimension(int width, int height)创建尺寸对象
-public void setSize(int width, int height) 设置尺寸对象尺寸
-public double getHeight()返回高
-public double getWidth()返回宽
-public void setLocation(int x,int y) 设置窗体起始位置
-public void setLocation(Point p)设置窗体起始位置
-Point类:类比Dimension类
-public void setBackground(Color c) 设置组件背景颜色
-Color类:类比Dimension类
-public void setIconImage(Image image)设置title小图标
-Image:了解Toolkit类(awt工具包)
-public static Toolkit getDefaultToolkit() 获取工具包对象
4000
-public abstract Image getImage(String filename) 获取图片
-public void setLayout(LayoutManager mgr)设置布局方式
-LayoutManager:不同的布局管理器,使用不同的子类对象
布局即组件的排列方式。
-FlowLayout(流式布局管理器)
它是Panel默认的布局管理器。
-BorderLayout(边界布局管理器)
它是Frame默认的布局管理器。
-GridLayout(网格布局管理器)
-GridBagLayout(网格包布局管理器)
-CardLayout(卡片布局管理器)
•容器添加组件方法
-public Component add(Component comp)
-public void setMenuBar(MenuBar mb)
•组件获取焦点方法
-public void requestFocus()
基本组件:
大部分组件设置方式类似窗体属性设置。
主要基本组件:
•Button:按钮
•Checkbox:复选框
•Choice:单选框
•TextComponent:
-TextArea:文本域
-TextField:文本框(宽度设置为public TextField(int columns))
菜单组件:
事件监听机制:
针对于某个组件完成对应的事件监听,当用户完成了对应的事件则触发执行对应代码。
•事件监听机制组成:
-事件源:被监听的组件
-事件:具体的用户动作事件
-监听器:用来监听事件源(大量使用了适配器模式)
-事件处理:处理事件的代码
•frame窗体监听:
-public void addWindowListener(WindowListener l)窗体事件
-WindowListener/WindowAdapter方法:
-void windowClosing(WindowEvent e)关闭窗口时调用方法
-public voidaddKeyListener(KeyListener l) 键盘事件
-KeyListener方法:
-void keyPressed(KeyEvent e) 按下某按键时调用方法
-KeyEvent:键盘事件抽象类
-public char
getKeyChar()获取按下的字符
-public void
consume() 反悔事件默认的处理
-类比学习publicvoid addMouseListener(MouseListener l)鼠标事件
-类比学习publicvoid addFocusListener(FocusListener l)焦点事件
•按钮监听:
-类比学习Button:public void addActionListener(ActionListener l)按钮动作事件
(三)练习
android培训、java培训、期待与您交流! ----------
(一)GUI概述
GUI(Graphical User
Interface):图形用户接口,用图形的方式,来显示计算机操作的界面,这样更方便更直观。
•GUI编程通常为桌面应用编程,不用于WEB编程。
CLI(Command Line User Interface) :命令行用户接口)就是常见的DOS命令行操作。需要记忆一些常用的命令,操作不直观。
AWT与swing:
•AWT(AbstractWindow ToolKit): 抽象窗口工具包。
-不属于扩展包。
-需要调用本地系统方法实现功能。
-依赖于本地。
-属重量级控件。
•swing:javax扩展工具包。
-属于扩展包。
-在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。
-增强了移植性。
-属轻量级控件。
GUI继承体系
在GUI当中一切均为组件。
•左侧为容器组件
•右侧为具体内容组件(基本组件)
(二)容器与内容
容器与内容:
•所有GUI画面均由容器与内容组成。
•容器内可以包含容器。
•容器内可以包含基本组件。
容器类:
主要容器为Container:
•Window窗口,单独窗体容器。可以单独使用。
-Frame:基本窗体框架。
-Dialog:对话框。
•Panel :面板容器。无法单独使用。存在于其他容器当中。
•以Frame为例,完成窗体创建步骤:
-第一步:创建窗体对象
-第二步:设置窗体属性
-第三步:让窗体可见
•创建窗体对象方法:
-public Frame()throws HeadlessException
-public Frame(String title)throws HeadlessException
•设置窗体可见方法:
-public void setVisible(boolean b)
-public void show() 已过时
设置窗体属性方法
•设置窗体属性方法:
-public voidsetResizable(boolean resizable) 设置是否由用户调节窗体大小
-public voidsetTitle(String title) 设置窗体标题,注意与设置名称不同。名称为组件在代码中的名称。并非显示出来。
-public void setSize(int width, int height) 设置窗体尺寸
-public void setSize(Dimension d) 设置窗体尺寸
-Dimension:尺寸抽象类
-public Dimension(int width, int height)创建尺寸对象
-public void setSize(int width, int height) 设置尺寸对象尺寸
-public double getHeight()返回高
-public double getWidth()返回宽
-public void setLocation(int x,int y) 设置窗体起始位置
-public void setLocation(Point p)设置窗体起始位置
-Point类:类比Dimension类
-public void setBackground(Color c) 设置组件背景颜色
-Color类:类比Dimension类
-public void setIconImage(Image image)设置title小图标
-Image:了解Toolkit类(awt工具包)
-public static Toolkit getDefaultToolkit() 获取工具包对象
4000
-public abstract Image getImage(String filename) 获取图片
-public void setLayout(LayoutManager mgr)设置布局方式
-LayoutManager:不同的布局管理器,使用不同的子类对象
布局即组件的排列方式。
-FlowLayout(流式布局管理器)
它是Panel默认的布局管理器。
-BorderLayout(边界布局管理器)
它是Frame默认的布局管理器。
-GridLayout(网格布局管理器)
-GridBagLayout(网格包布局管理器)
-CardLayout(卡片布局管理器)
•容器添加组件方法
-public Component add(Component comp)
-public void setMenuBar(MenuBar mb)
•组件获取焦点方法
-public void requestFocus()
基本组件:
大部分组件设置方式类似窗体属性设置。
主要基本组件:
•Button:按钮
•Checkbox:复选框
•Choice:单选框
•TextComponent:
-TextArea:文本域
-TextField:文本框(宽度设置为public TextField(int columns))
菜单组件:
事件监听机制:
针对于某个组件完成对应的事件监听,当用户完成了对应的事件则触发执行对应代码。
•事件监听机制组成:
-事件源:被监听的组件
-事件:具体的用户动作事件
-监听器:用来监听事件源(大量使用了适配器模式)
-事件处理:处理事件的代码
•frame窗体监听:
-public void addWindowListener(WindowListener l)窗体事件
-WindowListener/WindowAdapter方法:
-void windowClosing(WindowEvent e)关闭窗口时调用方法
-public voidaddKeyListener(KeyListener l) 键盘事件
-KeyListener方法:
-void keyPressed(KeyEvent e) 按下某按键时调用方法
-KeyEvent:键盘事件抽象类
-public char
getKeyChar()获取按下的字符
-public void
consume() 反悔事件默认的处理
-类比学习publicvoid addMouseListener(MouseListener l)鼠标事件
-类比学习publicvoid addFocusListener(FocusListener l)焦点事件
•按钮监听:
-类比学习Button:public void addActionListener(ActionListener l)按钮动作事件
(三)练习
/* * Frame:窗口 * public Frame() throws HeadlessException 创建窗口,最初不可见 * public Frame(String title) throws HeadlessException 指定标题创建窗口,最初不可见 * public void show() 显示窗口 * public void setVisible(boolean b) 设置窗体可见 * * public void setResizable(boolean resizable) 设置此窗体是否可由用户调整大小。 * public void setTitle(String title) 设置窗体titile * public void setSize(int width, int height) 指定窗体大小 int:像素单位 1366*768 * public void setLocation(int x, int y) 指定窗体的位置 */ public class Demo01 { public static void main(String[] args) { //创建窗体对象 Frame frame = new Frame("我是Title"); //设置窗体属性 frame.setResizable(true); frame.setTitle("唐嫣欢迎您!"); frame.setSize(600,400); frame.setLocation(400, 200); frame.setVisible(true); } }
/* * Frame:窗口 * * public void setSize(Dimension d) 调整组件的大小 * Dimension:尺寸 * public void setLocation(Point p) 调整窗体位置 * Point:像素点 * public void setBackground(Color c) 设置背景颜色 * Color: 颜色 * 构造:分为 红 绿 蓝 整数0-255 小数0-1 * * public void setIconImage(Image image) 设置要作为此窗口图标显示的图像。 * Image:图片 * public abstract Image createImage(String filename) 返回一个图片对象 * Toolkit:工具类 * public static Toolkit getDefaultToolkit() 返回默认工具包对象 */ public class Demo02 { public static void main(String[] args) { //创建窗体对象 Frame frame = new Frame("唐嫣欢迎您!"); //设置窗体属性 Dimension d = new Dimension(600, 400); frame.setSize(d); Point p = new Point(400, 200); frame.setLocation(p); Color c = new Color(255, 255, 0); frame.setBackground(c); Toolkit tk = Toolkit.getDefaultToolkit(); Image i = tk.createImage("传智纪录片.jpg"); frame.setIconImage(i); frame.setVisible(true); } }
/* * * 向容器中添加组件 * public Component add(Component comp) 添加组件 * Button:按钮组件 * * 设置窗体布局 * public void setLayout(LayoutManager mgr) * * LayoutManager:布局的接口 * * BorderLayout:边框布局.使其符合下列五个区域:北、南、东、西、中。 默认布局 * FlowLayout:流式布局 */ public class Demo03_layout { public static void main(String[] args) { //创建窗体对象 Frame frame = new Frame("唐嫣欢迎您!"); //向窗体中添加组件 Button btn = new Button("我是小嫣,你看到了吧!~"); Button btn2 = new Button("我是嫣嫣,你看到了吧!~"); Button btn3 = new Button("我是嫣,你看到了吧!~"); Button btn4 = new Button("我是小小嫣,你看到了吧!~"); Button btn5 = new Button("我是嫣嫣嫣,你看到了吧!~"); frame.add(btn); frame.add(btn2); frame.add(btn3); frame.add(btn4); frame.add(btn5); //设置窗体属性 frame.setSize(600,400); frame.setLocation(400, 200); //设置窗体布局 //默认边框布局 frame.setLayout(new FlowLayout()); //让窗体可见 frame.setVisible(true); } }
/* * 事件监听: * 事件源:被监听的组件 * 事件:具体的用户动作事件 * 监听器:用来监听事件源 * 事件处理:处理事件的代码 * * 将监听器与组件关联: * public void addWindowListener(WindowListener l) 添加窗体监听器 * public void addKeyListener(KeyListener l) 键盘监听器 * public void addMouseListener(MouseListener l) 鼠标监听器 * * 监听器: * WindowListener:用于接收窗口事件的侦听器接口。 * WindowAdapter: 接收窗口事件的抽象适配器类。 */ public class Demo04_Listener { public static void main(String[] args) { //创建窗体对象 Frame frame = new Frame("唐嫣欢迎您!"); //设置窗体属性 frame.setSize(600,400); frame.setLocation(400, 200); //添加监听器 //使用适配器完成事件监听 frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.out.println("我关了!"); System.exit(0); } }); //让窗体可见 frame.setVisible(true); } }
/* * Menu:菜单 * MenuBar: 菜单条 * Menuitem:菜单项 * * JOptionPane:对话框工具类 * * public static int showConfirmDialog(Component parentComponent, Object message) 弹出确认对话框 * * parentComponent: 父组件 * message: 提示信息 * 返回值:状态码 */ public class Test5 { public static void main(String[] args) { final Frame frame = new Frame("唐嫣的菜单"); //设置窗体属性 frame.setSize(600, 400); frame.setLocation(400, 200); frame.setLayout(new FlowLayout()); //加入窗体事件监听,用来关闭窗体 frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { //对话框弹出 int state = JOptionPane.showConfirmDialog(frame, "你确定要离开我了么?"); if(state==0) { System.exit(0); } } }); //完成业务逻辑 //创建菜单条 MenuBar mb = new MenuBar(); //创建菜单 Menu menu = new Menu("文件"); Menu menu2 = new Menu("更改标题"); //创建菜单项 MenuItem mi = new MenuItem("退出系统"); MenuItem mi2 = new MenuItem("记事本"); final MenuItem mi3 = new MenuItem("好好学习"); final MenuItem mi4 = new MenuItem("天天向上"); final MenuItem mi5 = new MenuItem("恢复标题"); //将菜单放到菜单中 menu.add(menu2); //将菜单项放到菜单中 menu.add(mi); menu.add(mi2); menu2.add(mi3); menu2.add(mi4); menu2.add(mi5); //将菜单放到菜单条中 mb.add(menu); //将菜单条放入窗体 frame.setMenuBar(mb); //事件监听 mi.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); mi2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { try { Runtime.getRuntime().exec("notepad"); } catch (IOException e1) { e1.printStackTrace(); } } }); mi3.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frame.setTitle(mi3.getLabel()); } }); mi4.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frame.setTitle(mi4.getLabel()); } }); final String oldTitle = frame.getTitle(); mi5.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { frame.setTitle(oldTitle); } }); //窗体可见 frame.setVisible(true); } }
相关文章推荐
- iOS中 DataBase SQL数据库 UI_高级
- iOS中 DataBase SQL数据库 UI_高级
- 关于UITableViewCell的自适应高度使用后的心得记录
- Android属性动画之ValueAnimator
- ZOJ 3911 Prime Query
- git使用之六——github协同工作的Fork+Pull Request
- UICollectionView
- FineUI开源版之TreeGrid实现
- iOS 手写代码UICollectionView
- IOS 开发学习(3): IOS UI架构设计
- UICollectionView的下拉刷新问题
- UESTC 1712 Easy Problem With Numbers (线段树区间修改+非互素逆元)
- UIMenuController使用
- The resource identified by this request is only capable of generating responses with characteristics
- 给UIImageview 添加边框或者设置成圆角
- CALayer与UIView的关系
- UICollectionView详解 +实例
- Ant 打包war 生成文件内容build.xml
- UITableView刷新数据reLoadData
- iOS-UIKit(UIWindow.h--解读)