您的位置:首页 > 产品设计 > UI/UE

黑马程序员_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 面板

<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(需要知道的) 
* 事件处理

    * 事件: 用户的一个操作

    * 事件源: 被操作的组件

    * 监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: