------- android培训、java培训、期待与您交流! ----------
GUI
* 创建图形化界面
* 1,创建frame窗体
* 2,窗体基本设置
* 位置,大小,布局
* 3,定义组件
* 4,添加组件
* 5,显示窗体
* 事件监听机制的特点
* 1,事件源:图形界面组件
* 2,事件:组件都有对应事件和共性事件
* 3,监听器:将可以触发某一个事件的动作封装到了监听器中
* 4,处理方式:对事件进行处理
import java.awt.*;
import java.awt.event.*;
public class AwtDemo
{
public static void main(String[] args)
{
Frame f=new Frame("my Awt");
//基本样式设定
f.setLocation(300, 400);//设置窗口位置
f.setLayout(new FlowLayout());//设置布局
Button b=new Button("按钮");
f.add(b);
f.setSize(500, 100);//设置窗口大小
//安装监听器
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});//用匿名内部类
f.setVisible(true);
}
}
/*自定义类继承WindowAdapter重载方法
* class myClose extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
*/
Frame中添加组件
import java.awt.*;
import java.awt.event.*;
public class FrameDemo
{
//定义该图形中所需的组件的引用
private Frame f;
private Button bu;
FrameDemo()
{
init();
}
public void init()
{
f=new Frame("my frame");
//对frame进行基本设置
f.setBounds(300,300, 500, 300);//集setLocation 和setSize于一身
f.setLayout(new FlowLayout());
bu=new Button("按钮");
//将组件添加到frame中
f.add(bu);
//加载下窗体上的事件
myEvent();
f.setVisible(true);
}
private void myEvent()
{
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//让按钮具备将程序退出的功能
/*
* 按钮是事件源
* 添加组件对应的监听器*/
bu.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
}
public static void main(String[] args)
{
new FrameDemo();
}
}
键盘与鼠标的监听
import java.awt.*;
import java.awt.event.*;
public class MAK
{
private Frame f;
private Button b;
private TextField tf;
MAK()
{
init();
}
public void init()
{
f=new Frame("MAK");
b=new Button("按钮");
f.setBounds(300, 400, 500, 400);
f.setLayout(new FlowLayout());
tf=new TextField(10);//文本框
f.add(tf);
f.add(b);
myEvent();
f.setVisible(true);
}
public void myEvent()
{
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//鼠标监听
b.addMouseListener(new MouseAdapter()
{
public void mouseEntered(MouseEvent e)
{
//处理方式
}
public void mouseClicked(MouseEvent e)
{
}
});
//键盘监听
b.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
/*if(e.getKeyCode()==KeyEvent.VK_ESCAPE)
System.exit(0);*/
//组合键
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_E)
System.exit(0);
}
});
//文本框监听
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(!(e.getKeyCode()>=KeyEvent.VK_0&&e.getKeyCode()<=KeyEvent.VK_9))
{
System.out.println("请输入数字");
e.consume();
}
}
});
}
public static void main(String[] args)
{
new MAK();
}
}
具有查看目录文件功能的框(添加提醒对话框)
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyWindowDemo
{
private Frame f;
private Button b;
private TextArea ta;
private TextField tf;
//添加一个对话框
private Dialog d;
private Label l;
private Button ok;
MyWindowDemo()
{
init();
init1();
}
public void init()
{
f=new Frame();
b=new Button("-->");
ta=new TextArea(20,55);
tf=new TextField(50);
//初始化frame
f.setBounds(300, 200, 500, 400);
f.setLayout(new FlowLayout());
//添加组件
f.add(tf);
f.add(b);
f.add(ta);
//安装监听
myEvent();
f.setVisible(true);
}
//添加对话框
public void init1()
{
d=new Dialog(f,"注意!");
d.setBounds(310, 210, 200, 100);
l=new Label();
ok=new Button("OK");
d.setLayout(new FlowLayout());
d.add(l);
d.add(ok);
DialogEvent();
}
public void DialogEvent()
{
d.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
d.setVisible(false);
}
});
ok.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
d.setVisible(false);
}
});
}
public void myEvent()
{
//关窗口
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//按钮按下
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
getDir();
}
});
//回车
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
getDir();
}
});
}
public void getDir()
{
String dir=tf.getText();
File Dir=new File(dir);
if(Dir.exists()&&Dir.isDirectory())
{
ta.setText("");
String[] lujing=Dir.list();
for(String lj:lujing)
{
ta.append(lj+"\r\n");
}
}
else
{
String lab="找不到"+dir+"路径";
l.setText(lab);
d.setVisible(true);
}
}
public static void main(String[] args)
{
new MyWindowDemo();
}
}
带有菜单的Frame
import java.awt.*;
import java.awt.event.*;
public class MenuDemo
{
private Frame f;
private MenuBar mb;
private Menu m,m1;
private MenuItem mi,mi1;
MenuDemo()
{
init();
}
public void init()
{
f=new Frame("Menu");
f.setBounds(300, 300, 500, 300);
f.setLayout(new FlowLayout());
f.setVisible(true);
m=new Menu("File");
m1=new Menu("功能");
mb=new MenuBar();
mi=new MenuItem("Exit");
mi1=new MenuItem("功能1");
f.setMenuBar(mb);
mb.add(m);
m.add(m1);
m1.add(mi1);
m.add(mi);
Event();
}
public void Event()
{
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//定义mi退出
mi.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
}
public static void main(String[] args)
{
new MenuDemo();
}
}