Java面向对象——GUI用户图形界面

欢迎光临新长城博客中心



面向对象

GUI(图形用户界面)

GUIGraphical User Interface(图形用户接口)。

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


CLICommand line User Interface (命令行用户接口)

就是常见的Dos命令行操作。需要记忆一些常用的命令,操作不直观。

举例:

比如:创建文件夹,或者删除文件夹等
Java为GUI提供的对象都存在Java.Awt和Javax.Swing两个包中。

GUI(Awt和Swing)

Awt与 Swing

Java.Awt:Abstract Window ToolKit (抽象窗口工具包)。

需要调用本地系统方法实现功能,属于重量级控件。

Javax.Swing:在AWT的基础上,建立的一套图形界面系统。

其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。

继承关系

Component

|--Button(按钮)

|--Label(标签)

|--Checkbox(复选框)

|--TextComponent(文本框)

|--TextArea(单行文本框)

|--TextField(多行文本框)

|--Container(容器,特殊组件,可通过add方法添加其他组件)

|--Panel(画板)

|--Window(窗口)

|--Frame(窗体)

|--Dialog(对话框)

|--FileDialog(文件对话框)

布局管理器

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

常见的布局管理器: 

FlowLayout(流式布局管理器)

从左到右的顺序排列。(中左右)

Panel默认的布局管理器。

BorderLayout(边界布局管理器)

东,南,西,北,中。

Frame默认的布局管理器。

GridLayout(网格布局管理器)

规则的矩阵。

CardLayout(卡片布局管理器)

选项卡。

GridBagLayout(网格包布局管理器)

非规则的矩阵。

(图形化布局基本设计)

类 Component

 void setLocation(int x, int y) 
          将组件移到新位置。
 void setSize(int width, int height) 
          调整组件的大小,使其宽度为 width,高度为 height
 void setVisible(boolean b) 
          根据参数 b 的值显示或隐藏此组件。

类 Container

 Component add(Component comp)
          将指定组件追加到此容器的尾部。

类 Frame

构造方法摘要
Frame()
          构造一个最初不可见的 Frame 新实例()。
Frame(String title)
          构造一个新的、最初不可见的、具有指定标题的 Frame 对象。

类 Button

构造方法摘要
Button()
          构造一个标签字符串为空的按钮。
Button(String label)
          构造一个带指定标签的按钮。

类 FlowLayout

构造方法摘要
FlowLayout()
          构造一个新的 FlowLayout,它是居中对齐的,默认的水平和垂直间隙是 5 个单位。

import java.awt.Frame;

import java.awt.Button;

import java.awt.FlowLayout;

/*
创建图形化界面:
1.创建frame窗体。
2.对窗体进行基本设置。
比如大小,位置,布局。
3.定义组件。
4.将组件通过窗体的add方法添加到窗体中。
5.让窗体显示。
*/

public class Test{
public static void main(String...args){
Frame f =new Frame("我的电脑");
f.setSize(1025,550);
f.setLocation(0,100);
f.setLayout(new FlowLayout());

Button b = new Button("360安全卫士");
f.add(b);
f.setVisible(true);
System.out.println("Hello 新长城");
}

}

(事件监听机制)

事件监听机制的特点:

1,事件源。

2,事件。

3,监听器。

4,事件处理。

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

事件:每一个事件源都有自己特有的对应事件和共性事件。
监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中。

以上三者,在Java中都已经定义好了。
直接获取其对象来用就可以了。


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

(自定义事件事件处理方式)

import java.awt.Frame;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

类 Window

void addWindowListener(WindowListener l)
          添加指定的窗口侦听器,以从此窗口接收窗口事件。

接口 WindowListener 类 WindowAdapter

 void windowActivated(WindowEvent e)
          将 Window 设置为活动 Window 时调用。
 void windowClosed(WindowEvent e)
          因对窗口调用 dispose 而将其关闭时调用。
 void windowClosing(WindowEvent e)
          用户试图从窗口的系统菜单中关闭窗口时调用。
 void windowDeactivated(WindowEvent e)
          当 Window 不再是活动 Window 时调用。
 void windowDeiconified(WindowEvent e)
          窗口从最小化状态变为正常状态时调用。
 void windowIconified(WindowEvent e)
          窗口从正常状态变为最小化状态时调用。
 void windowOpened(WindowEvent e)
          窗口首次变为可见时调用。

类 WindowEvent

public class Test{

public static void main(String...args){

Frame f =new Frame("我的电脑");

f.setSize(1025,550);

f.setLocation(0,100);

f.setLayout(new FlowLayout());

Button b =new Button("360安全卫士");

f.add(b);

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.out.println("我要退出了");

System.out.println(e.toString());

System.exit(0);

}

public void windowActivated(WindowEvent e){

System.out.println("激活");

}  

public void windowOpened(WindowEvent e){

System.out.println("打开");

});

f.setVisible(true);

System.out.println("Hello 新长城");

}

}
/*
WinodwListener接口
abstract class WindowAdapter implements WindowListener{

void windowActivated(WindowEvent e){}

void windowClosed(WindowEvent e){}

void windowClosing(WindowEvent e){}

void windowDeactivated(WindowEvent e){} 

void windowDeiconified(WindowEvent e){}

void windowIconified(WindowEvent e){}

void windowOpened(WindowEvent e){}

}
*/
/*
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);

}

}

*/

化难为易:

1)、确定事件源(容器或组件)

2、通过事件源对象的addxxxListener()方法将监听器注册到该事件源上。

3、该方法中接收XXXListener对象,或者XXXListener的子类XXXAdapter对象。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值