------ <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.comtarget="blank">
java培训</a>、期待与您交流! ---------
GUI
《1》 Graphical User Interface(图形用户接口)。
《2》用图形的方式,来显示计算机操作的界面,这样更方便更直观。
《3》Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中
新建一个基本的窗体
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
public class GuiDemes {
public static
void main(String[] args) {// TODO Auto-generated method stub
med();
}
private static void med() {
//创建窗体
Frame f = new Frame("my java");
//对窗体进行基本设置
//设置显示窗体的大小
f.setSize(500,400);
//设置显示窗体显示的位置
f.setLocation(300, 200);
//设置布局方式
f.setLayout(new FlowLayout());
//创建一个按钮对象
Button b = new Button("按纽");
//将按纽添加到显示窗体中去
f.add(b);
//调用方法使窗体显示在窗口中
f.setVisible(true);
}
}
事件监听机制
《1》事件源——就是awt包中的或者swing包中的那些图形界面组件
《2》事件——每一个事件源都有自己特有的对应事件和共性事件
《3》监听器——将可以触发某一个事件的动作都已经封装到了监听器中
《4》事件处理——这是我们要做的事情,对产生的动作进行处理
添加一个关闭功能
第一种方式:
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class GuiDemes {
public static void main(String[] args)
{
// TODO Auto-generated method stub
med();
}
private static void med() {
//创建窗体
Frame f = new Frame("my java");
//对窗体进行基本设置
//设置显示窗体的大小
f.setSize(500,400);
//设置显示窗体显示的位置
f.setLocation(300, 200);
//设置布局方式
f.setLayout(new FlowLayout());
//创建一个按钮对象
Button b = new Button("按纽");
//将按纽添加到显示窗体中去
f.add(b);
//调用自定义关闭对象来关闭显示窗体
f.addWindowListener(new mywinclose());
//调用方法使窗体显示在窗口中
f.setVisible(true);
}
}
//自定义一个关闭类
class mywinclose extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.out.println("666"+e.toString());
System.exit(0);
}
}
第二种实现方式:定义一个匿名内部类
private static void med() {
//创建窗体
Frame f = new Frame("my java");
//对窗体进行基本设置
//设置显示窗体的大小
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);
}
简单优化代码
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameDemo
{
//定义该组件中所需的引用
private Frame f;
private Button but;
FrameDemo()
{
init();
}
public void init()
{
f = new Frame("my java");
//对窗体进行设置
f.setBounds(100,552,444,568);
f.setLayout(new FlowLayout());
but = new Button("my button");
//将按纽添加到窗体中去
f.add(but);
//加载下窗体事件
myEvent();
//显示窗体
f.setVisible(true);
}
private void myEvent()
{
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}
public class GuiDemes {
public static void main(String[] args)
{
// TODO Auto-generated method stub
med2();
}
private static void med2() {
// TODO Auto-generated method stub
FrameDemo f = new FrameDemo();
}
使窗体中的按纽具备关闭功能
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class FrameDemo
{
//定义该组件中所需的引用
private Frame f;
private Button but;
FrameDemo()
{
init();
}
public void init()
{
f = new Frame("my java");
//对窗体进行设置
f.setBounds(100,552,444,568);
f.setLayout(new FlowLayout());
but = new Button("my button");
//将按纽添加到窗体中去
f.add(but);
//加载下窗体事件
myEvent();
//显示窗体
f.setVisible(true);
}
private 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 class GuiDemes {
public static void main(String[] args)
{
// TODO Auto-generated method stub
med2();
}
private static void med2() {
// TODO Auto-generated method stub
FrameDemo f = new FrameDemo();
}
运行程序: