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

黑马程序员_GUI

2014-03-13 18:50 162 查看

----------------------Android培训Java培训、java学习型技术博客、期待与您交流! ----------------------

GU
4000
I:Graphical User Interface(图形用户接口)

java为GUI提供的对象在java.awt和java.swing两个包中。

java.Awt:Absract Window ToolKit(抽象窗口工具包)

Component:是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互。

典型图形用户界面中的按钮、复选框和滚动条都是组件示例。

继承体系:

Component:是一个具有图形表示能力的对象,可在屏幕上显示,并可与用户进行交互。

  典型图形用户界面中的按钮、复选框和滚动条都是组件示例。

 |--Button:此类创建一个标签按钮。当按下该按钮时,应用程序能执行某项动作

 |--Label:Label对象是一个可在容器中放置文本的组件。一个标签只显示一行只读文本。

 |--Checkbox:复选框是一个可处于“开”(true) 或“关”(false) 状态的图形组件.

 |--TextComponent:是所有允许编辑文本的组件的超类。TextComponent 类定义了一组判断此文本是否可编辑的方法。

  |--TextArea:TextArea 对象是显示文本的多行区域。可以将它设置为允许编辑或只读。

  |--TextField:TextField 对象是允许编辑单行文本的文本组件。

 |--Container

  |--Panel:是最简单的容器类。应用程序可以将其他组件放在面板提供的空间内,这些组件包括其他面板。

  |--Window:对象是一个没有边界和菜单栏的顶层窗口。窗口的默认布局是 BorderLayout。

   |--Frame:是带有标题和边框的顶层窗口。

   |--Dialog:是一个带标题和边界的顶层窗口,边界一般用于从用户处获得某种形式的输入。

    |--FileDialog:显示一个对话框窗口,用户可以从中选择文件。

布局管理:

FlowLayout(流式布局):从左到右的顺序排列。Panel默认的布局管理器。

BordorLayout(边界布局);东西南北中,Frame默认的布局管理器。

GridLayout(网格布局):规则的矩阵

GardLayout(卡片布局):选项卡

GridBagLayout(网格包布局):非规则的矩阵

事件监听机制的特点:

1、事件源:就是Awt包或Swing包中的那些图形界面组件。

2、事件:每个事件源都有自己特有的对应时间和共性事件

3、监听器:将可以出发某个事件的动作(不止一个动作)都已经封装盗了监听器中。

以上三者,在java中都已经定义好了,直接获取其对象就可以。

4、事件处理:就死对产生的动作进行处理。

事件监听机制的包是java.awt.event

代码演示:

import java.awt.*;
import java.awt.event.*;
class  AwtDemo
{
public static void main(String[] args)
{
//创建Frame窗体
Frame f = new Frame("my awt");
//设置窗体大小
f.setSize(500,400);
//设置窗体的位置
f.setLocation(300,200);
//设置组件在窗体中的布局方式
f.setLayout(new FlowLayout());
//定义组件
Button b = new Button("按钮");
//将组件添加到窗体中
f.add(b);
//窗口监听器
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});

//让窗体显示
f.setVisible(true);
System.out.println("Hello World!");
}
}
import java.awt.*;
import java.awt.event.*;

class  FrameDemo
{
private Frame f;
private Button but;
FrameDemo()
{
init();
}
public void init()
{
f = new Frame();
//对Frame进行基本设置
f.setBounds(300,200,500,400);
f.setLayout(new FlowLayout());
but = new Button("退出");
f.add(but);

//加载窗体事件
myEvent();

f.setVisible(true);
}

public void myEvent()
{
//窗口监听器
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//组件监听器
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("按钮干的");
System.exit(0);
}
});
}

public static void main(String[] args)
{
new FrameDemo();
}
}


鼠标键盘监听:

import java.awt.*;
import java.awt.event.*;
class MouseAndKeyEvent
{
private Frame f;
private Button but;
private TextField tf;
MouseAndKeyEvent()
{
init();
}
public void init()
{
f = new Frame();
//对Frame进行基本设置
tf = new TextField(20);
f.setBounds(300,200,500,400);
f.setLayout(new FlowLayout());
but = new Button("退出");
f.add(tf);
f.add(but);

//加载窗体事件
myEvent();

f.setVisible(true);
}

public void myEvent()
{
//窗口监听器
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//鼠标监听器
but.addMouseListener(new MouseAdapter()
{
public void mouseEntered(MouseEvent e)
{
System.out.println("鼠标进入");
}
public void mouseClicked(MouseEvent e)
{
if(e.getClickCount()==2)
System.out.println("双击动作");
}
});
//键盘监听器
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
System.out.println(e.getKeyCode()+".."+KeyEvent.getKeyText(e.getKeyCode()));
if(!(e.getKeyCode()>=KeyEvent.VK_0 && e.getKeyCode()<=KeyEvent.VK_9))
e.consume();
}
});

}

public static void main(String[] args)
{
new MouseAndKeyEvent();
}
}


----------------------Android培训Java培训、java学习型技术博客、期待与您交流! ----------------------


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: