java gui构建机制_java GUI(UI创建与监听机制)

/*

* GUI(Graphical User Interface):图像用户接口。

* CLI:命令用户接口。

* java为GUI提供的对象都在java.Awt中和javaSwing两个包中。

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

* javax.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由java实现,增强了移植性,属于轻量级控件。

* 一.布局:容器中的组件的排放方式,就是布局。

* 1.FlowLayout(流式布局管理)

* 从左到右的顺序排列,Panel(面板)默认的布局管理器。

* 2.BorderLayout(边界布局管理器)

* 东南西北中,Frame默认的布局管理器。

* 3.GridLayout(网格布局管理器)

* 规则的矩阵。

* 4.CardLayout(卡片布局管理器)

* 选项卡。

* 5.GridBagLayout(网格包布局管理器)

* 非规则的矩阵。

*/

import java.awt.*;

public class GuiDemo {

public static void main(String[] args) {

AwtDemo();

System.out.println("gogoing");

}

//定义一个窗体,设置窗体名称,设置窗体可见。

public static void AwtDemo()

{

//设置窗体名称,

Frame f=new Frame("my awt");

//设置窗体可见

f.setVisible(true);

}

}

/*

* 一.创建图形化界面:

* 1.创建frame窗体。

* 2.对窗体进行基本设置,如:大小,位置,布局。

* 3.定义组件。

* 4.将组建通过窗体的add方法添加到窗体中。

* 5.让窗体显示,通过setViseble(true)。

*

* 二.事件监听机制的特点:

* 1.事件源:

* awt包或者swing包中的那些图形界面组件。

* 2.事件:

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

* 3.监听器:

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

*以上三者都在java中定义好了,直接获取对象。

* 4.事件处理:

* 程序员自己需要对产生的动作进行处理。

*

*/

import java.awt.*;

import java.awt.event.*;

public class AwtDemo {

public static void main(String[] args) {

FrameDemo();

}

public static void FrameDemo()

{

//创建frame窗体。

Frame f=new Frame();

//对窗体进行基本设置,如:大小,位置,布局。

f.setSize(500,500);

f.setTitle("lol客户端");

f.setLocation(300,300);

f.setLayout(new FlowLayout());

//定义组件,;并且添加属性。

Button b=new Button("我是一个按钮");

f.add(b);

//用窗体调用添加监听器的方法,方法里必须接收一个(监听器)windowListtener接口子类对象。

//而该接口里有七个方法,子类必须全部复写,而我们只需要调用我们需要的方法,所以此方法不行。

//该接口的抽象子类WindowAdapter复写了其全部的方法,而且不是抽象。

//所以我们定义该类的子类,并且复写我们需要的方法,即可。

f.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

//e表示事件的所有信息,没有很大意义。

System.out.println("close windos"+e.toString());

System.exit(0);

}

});

//让窗体显示

f.setVisible(true);

}

}

/*定义WindowAdapter子类。

class MyWin extends WindowAdapter

{

//窗体关闭动作处理方式,只要监听器一监听到用户的关闭动作就会自动调用此方法进行处理。

public void windowClosing(WindowEvent e)

{

//System.out.println("close windos");

System.exit(0);

}

}*/

import java.awt.*; import java.awt.event.*; public class FrameDemo { //先定义该图形中所需要的组件的引用。 private Frame f; private Button but; FrameDemo() { init(); } //对图形化界面进行初始化。 public void init() { f=new Frame("my frame"); //对frame进行基本设置,该方法包含setsize和setlocation. f.setBounds(200,200,400,300); 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的api,发现按钮支持一个特有的监听addActionListener */ //为按钮添加一个活动监听器,ActionListener监听器不需要适配器,因为它只有一个方法。 but.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("退出,按钮干的"); System.exit(0); } }); } public static void main(String[] args) { new FrameDemo(); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值