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

黑马程序员_day22 GUI。

2012-08-26 00:00 148 查看
---------------------- android培训、java培训 期待与您交流! ----------------------

一:GUI(图形用户界面)。

1,Graphical User Interface(图形用户接口)

2,用图形的方式,来显示计算机操作的界面,这样更方便更直观。

二:CLI。

1,Command Line User Interface(命令行用户捷空运)

2,就是常见的Dos命令行操作。

3,需要记忆一些常用的命令,操作不直观。

三:举例。

1,比如:创建文件夹,或者删除文件夹等。

四:Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。

1,Awt与Swing。

a,java.Awt:Abstract Window Toolkit(抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。

b,javax.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现,

增强了移植性,属轻量级控件。

五:怎么制造个图形界面。

import java.awt.*;

import java.awt.event.*;

/*

创建图形化界面:

1,创建frame窗体。

2,对窗体进行基本设置。

比如大小,位置,布局。

3,定义组件。

4,将组件通过窗体的add方法添加到窗体中。

5,让窗体显示,通过setVisible(true)

事件监听机制的特点:

1,事件源。

2,事件。

3,监听器。

4,事件处理。

事件源:就是awt包或者swing包中的那些图形界面组件。

事件:每一个事件源都有自己特有的对应事件和共性事件。

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

以上三者,在java中都已经定义好了。

直接获取其对象来用就可以了。

我们要做的事情是,就是对产生的动作进行处理。

*/

class AwtDemo

{

public static void main(String[] args)

{

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.out.println("我关");

System.exit(0);

}

public void windowActivated(WindowEvent e)

{

System.out.println("我活了。");

}

public void windowOpened(WindowEvent e)

{

System.out.println("我被打开了,hahahhahah");

}

});

f.setVisible(true);

//System.out.println("Hello World!");

}

}

/*

class MyWin implements WindowListener

{

//覆盖7个方法。可是我只用到了关闭的动作。

//其他动作都没有用到,可是却必须复写。

}

//因为WindowListener的子类WindowAdapter已经实现了WindowListener接口。

//并覆盖了其中的所有方法。那么我只要继承自Windowadapter覆盖我需要的方法即可。

class MyWin extends WindowAdapter

{

public void windowClosing(WindowEvent e)

{

//System.out.println("window closing---"+e.toString());

System.exit(0);

}

}

*/

//练习,定义一个窗体,在窗体中添加一个按钮具备关闭该窗体的功能。

六:Action事件。

import java.awt.*;

import java.awt.event.*;

class FrameDemo

{

//定义该图形中所需的组件的引用。

private Frame f;

private Button but;

FrameDemo()

{

init();

}

public void init()

{

f = new Frame("my frame");

//对frame进行基本设置。

f.setBounds(300,100,600,500);

f.setLayout(new FlowLayout());

but = new Button("my button");

//将组件添加到frame中

f.add(but);

//加载一下窗体上事件。

myEvent();

//显示窗体;

f.setVisible(true);

}

private void myEvent()

{

f.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

//让按钮具备退出程序的功能

/*

按钮就是事件源。

那么选择哪个监听器呢?

通过关闭窗体示例了解到,想要知道哪个组件具备什么样的特有监听器。

需要查看该组件对象的功能。

通过查阅button的描述。发现按钮支持一个特有监听addActionListener。

*/

but.addActionListener(new ActionListener()

{

private int count = 1;

public void actionPerformed(ActionEvent e)

{

//System.out.println("退出,按钮干的");

//System.exit(0);

//f.add(new Button("Button-"+(count++)));

//f.setVisible(true);

//f.validate();

//System.out.println(e.getSource());

Button b = (Button)e.getSource();

Frame f1 = (Frame)b.getParent();

f1.add(new Button("button-"+count++));

f1.validate();

}

});

}

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("my frame");

f.setBounds(300,100,600,500);

f.setLayout(new FlowLayout());

tf = new TextField(20);

but = new Button("my button");

f.add(tf);

f.add(but);

myEvent();

f.setVisible(true);

}

private void myEvent()

{

f.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

tf.addKeyListener(new KeyAdapter()

{

public void keyPressed(KeyEvent e)

{

int code = e.getKeyCode();

if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9))

{

System.out.println(code+".....是非法的");

e.consume();

}

}

});

//给But添加一个键盘监听。

but.addKeyListener(new KeyAdapter()

{

public void keyPressed(KeyEvent e)

{

if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)

//System.exit(0);

System.out.println("ctrl+enter is run");

//System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"...."+e.getKeyCode());

}

});

/*

but.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

System.out.println("action ok");

}

});

*/

/*

but.addMouseListener(new MouseAdapter()

{

private int count = 1;

private int clickCount = 1;

public void mouseEntered(MouseEvent e)

{

System.out.println("鼠标进入到该组件"+count++);

}

public void mouseClicked(MouseEvent e)

{

if(e.getClickCount()==2)

System.out.println("双击动作"+clickCount++);

}

});

*/

}

public static void main(String[] args)

{

new MouseAndKeyEvent();

}

}

八:

---------------------- android培训、java培训 期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: