---------------------- android培训、java培训、期待与您交流! ----------------------
1.Awt与Swing
java.Awt;需要调用本地系统方法实现功能。属于重量级控件。
javax.Swing:是在AWT的基础上建立的一套图形界面系统,其中提供了更多的组件,而且完全有java实习。争强了移植性,属轻量级控件。
2.创建图形化界面
1).创建frame窗体;
2).对窗体进行基本设置;比如大小、位置、布局等。
3).定义组件;
4).将组件通过窗体的add方法添加到窗体中。
5).让窗体显示,通过setVisible(true)
import java.awt.Frame;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
public class FrameDemo {
private Frame f;
FrameDemo(){
init();
}
public void init(){
f = new Frame("窗体");
f.setSize(500,400);
f.setLocation(300,200);
myEvent();
f.setVisible(true);
}
private void myEvent(){
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String[] args){
new FrameDemo();
}
3. 事件监听机制的特点:
1).事件源:就是awt包或者Swing包中的那些图形界面组件。
2).事件:每个事件源都有自己特有的对应事件和共性事件。
3).将可以除法某一个事件动作都已经封装到了监听器中。
4).事件处理
事件监听机制流程图
外部动作
|
|2.有监听器所监听的动作作于事件源上
\/
事件源(组件)——3.产生事件对象———>事件对象——————
/\ |4.将事件对象传给事件处理方式
| \/
| 监听器
—————1.将监听器注册到事件源————— 监听引发事件的动作(事件处理方式)
import java.awt.*;
import java.awt.event.*;
public classAwtGui {
public static void main(String[] args) {
//窗体的基本设置
Frame f = new Frame("my awt");
f.setSize(400, 300);
f.setLocation(300,200);
f.setLayout(new FlowLayout());
Button but = new Button("按钮");
f.add(but);
f.addWindowListener(new WindowAdapter(){
public voidwindowClosing(WindowEvent e)
{
System.exit(0);
}
});
//按钮点击事件
but.addActionListener(new ActionListener(){
public voidactionPerformed(ActionEvent e)
{
System.out.println("hello java");
}
});
//鼠标进入事件
but.addMouseListener(new MouseAdapter(){
private intcount= 1;
private intclickCount= 1;
public voidmouseEntered(MouseEvent e)
{
System.out.println("鼠标进入到该组件"+count++);
}
//比按钮先执行
public voidmouseClicked(MouseEvent e)
{
if(e.getClickCount()==2)
System.out.println("点击动作"+clickCount++);
}
});
//键盘监听
but.addKeyListener(new KeyAdapter(){
public voidkeyPressed(KeyEvent e)
{
System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());
if(e.isControlDown() && e.getKeyCode()==KeyEvent.VK_ENTER)
System.out.println("ctrl+enter is run");
}
});
tf.addKeyListener(new KeyAdapter(){
public voidkeyPressed(KeyEvent e)
{
int code = e.getKeyCode();
if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9)){
System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"...非法输入");
e.consume();//非法则无法输入
}
}
});
f.setVisible(true);
}
}
4. 菜单栏的制作
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public classMyMenuDemo {
private Frame f;
private MenuBar mb;
private Menu m,subMenu;
private MenuItem closeItem,subItem;
MyMenuDemo(){
init();
}
public void init(){
f = new Frame("my window");
f.setBounds(300,100,600,500);
f.setLayout(new FlowLayout());
mb = new MenuBar();
m = new Menu("文件");
subMenu = new Menu("子菜单");
subItem = new MenuItem("子条目");
closeItem = new MenuItem("退出");
subMenu.add(subItem);
m.add(subMenu);
m.add(closeItem);
mb.add(m);
f.setMenuBar(mb);
myEvent();
f.setVisible(true);
}
private void myEvent(){
//对closeItem子条目进行监听
closeItem.addActionListener(new ActionListener(){
public voidactionPerformed(ActionEvent e){
System.exit(0);
}
});
f.addWindowListener(new WindowAdapter(){
public voidwindowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String[] args) {
new MyMenuDemo();
}
}
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima