GUI(图形用户界面)


1、GUI全称: Graphical  User  Interface

 

2、AwtSwing的区别:

Java.awt是属于重量级控件,需要调用本地系统方法,比较依赖平台,移植性比较差。java.Swing是基于awt的图形化界面系统,完全用JAVA编写,移植性比较强,属于轻量级控件。

 

3、布局管理:

(1)FlowLayout(流式布局):从左到右的顺序排列(默认情况下组件居中)

(2)BoderLayout(边界布局):按东、南、西、北、中的顺序排列

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

(4)CardLayout(卡片布局):非规则的矩阵

 

4、Frame(窗体):

(1)构造函数:Frame(String title)  , title为窗体标题

(2)是否显示窗体函数: setVisible(Boolean b) btrue显示,为false不显示

(3)设置大小的函数:setSize(,

(4)窗体在屏幕上面显示的位置:setLocation(横坐标,纵坐标)

 

5、创建图形化界面的步骤:

(1)创建Frame窗体

(2)对窗体进行基本设置(大小、显示位置、布局之类的)

(3)定义组件

(4)将组件通过add()方法添加到窗体中

(5)通过setVisibleTRUE)方法将窗体显示

(6)总体设置函数:setBounds(int x, int y , int width, int height)

 

6、事件监听机制流程图

 

7、事件监听机制的特点:

(1)事件源:AWT包或者SWING包中的图形化界面组件

(2)事件:每一个事件源都有自己特有的事件

(3)监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中

(4)事件处理:

注:(1)、(2)、(3)在java中都已经定义好了,只有(4)才是用户自己需要实现的

 

8、窗体事件

(1)用的最多的是“关闭”、“最大化”、“最小化”事件

2) 监听器类继承windowAdapter抽象类,因windowAdapter已经覆写了windowLinstener   中的所有方法

 

9、Action(活动)事件、鼠标(Mouse)事件、键盘(Key)事件、对话框(Dialog)事件,

   鼠标事件和键盘事件是在compent组件中;Dialogsaveload俩种模式,默认是load(打开)模式。

 

10.菜单项MenuBarMenu


11键盘监听器代码:

package gui;


import java.awt.*;
import java.awt.event.*;


public class Frame01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Frame f=new Frame("first title");
Button b=new Button("第一个小按钮");
TextField t=new TextField(20);
//窗体尺寸设计
f.setSize(300, 200);
f.setLocation(100,200);
//窗体可见
f.setVisible(true);
//组件布局管理: 流式布局
f.setLayout(new FlowLayout());
//组件的创建及添加
f.add(b);
f.add(t);
//添加窗体监听事件
f.addWindowListener(new WinAdapter());
b.addActionListener(new Act()); 
b.addMouseListener(new MouseL());
b.addKeyListener(new KeyL());
t.addKeyListener(new KeyL());
}


}


/*
 一般监听器超过3个监听事件处理时,需要使用适配器监听器
 其目的是为了方便创建监听器对象
 */


//窗体监听器事件类
class WinAdapter extends WindowAdapter
{
//关闭事件
public void windowClosing(WindowEvent e)
{
System.out.println("将窗体关闭");
System.exit(0);
}
//活化事件
public void windowActivated(WindowEvent e)
{
System.out.println("活化事件产生了");
}
}
//按钮监听事件类
class Act implements ActionListener{
public void actionPerformed(ActionEvent e){
System.out.println("触动按钮动作发生了");
}
}
//鼠标监听器事件类
class MouseL extends MouseAdapter
{
public void mouseClicked(MouseEvent e){
if(e.getClickCount()==2)
System.out.println("双击按钮");
System.out.println("单击按钮");
}
}
//键盘监听器
class KeyL extends KeyAdapter{
public void keyPressed(KeyEvent e){
if(!(e.getKeyCode()>=e.VK_0 && e.getKeyChar()<=e.VK_9))
{
System.out.println("只能输入数字");
//不符合要求的字符不能进入文本框中
e.consume();
}
}
}

 

12、菜单项界面代码:

package gui;


import java.awt.event.*;
import java.awt.*;


public class Menu1 {


private Frame f;
private MenuBar mb;
private Menu m,m1;
private MenuItem mi,mi1,m2;

public Menu1(){
init();
event();
}
//初始化函数
private void init(){
f=new Frame("第一个菜单栏项目");
mb=new MenuBar();
m=new Menu("文件");
m1=new Menu("新建");
mi=new MenuItem("文件夹");
m2=new MenuItem("文本");
mi1=new MenuItem("退出");

mb.add(m);
m.add(m1);
m.add(mi1);
m1.add(mi);
m1.add(m2);
f.setMenuBar(mb);
f.setBounds(300, 200, 500, 300);
f.setVisible(true);
}
//监听器函数
private void event(){
//窗体监听器
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
//子条目监听器
mi1.addActionListener(new ActionListener(){
public  void actionPerformed(ActionEvent e){
System.exit(0);
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Menu1();
}


}

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值