GUI编程

GUI编程

•Graphical User Interface(图形用户接口)。
•用图形的方式,来显示计算机操作的界面,这样更方便更直观。
需要用到的两个包:
java.awt:
Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。
javax.swing:
在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。

组件和容器

组件:组件就是对象
容器组件:是可以存储基本组件和容器组件的组件。
基本组件:是可以使用的组件,但是必须依赖容器。

Frame:
Frame是Window的子类,由Frame或其子类创建窗口
演示;

package demo01;

import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class Test1 {
    public static void main(String[] args) {
        Frame frame = new Frame();
        frame.setBounds(200,300,500,500);
        frame.setBackground(Color.BLACK);
        frame.setVisible(true);
        frame.addWindowListener(new WindowListener() {
            @Override
            public void windowOpened(WindowEvent e) {

            }

            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);

            }

            @Override
            public void windowClosed(WindowEvent e) {

            }

            @Override
            public void windowIconified(WindowEvent e) {

            }

            @Override
            public void windowDeiconified(WindowEvent e) {

            }

            @Override
            public void windowActivated(WindowEvent e) {

            }

            @Override
            public void windowDeactivated(WindowEvent e) {

            }
        });

   
}																	

关闭窗口时,窗口并不会消失,需要添加窗口监听,重写windowClosing方法
setbound设置窗口大小,所处位置
setBackground设置背景颜色
setVisible设置窗口可视

Panel
Panel拥有自己的布局管理器
可以往Frame中添加Panel
Panel都使用和Frame类似
标签
Label
在窗口界面中加入一些文字
Label label = new Label(“描述文字”);
frame.add(label);
按钮
Button
Button button = new Button(按钮标签);

布局管理器

1.FlowLayout(流式布局管理器,构造方法可指定对齐方式、水平垂直间距)
特点:从左到右的顺序排列,默认居中
在这里插入图片描述
2.Borderlayout(边界布局管理器)
特点:按照东南西北中的顺序排列, Frame默认的布局管理器
其中每个部分只可添加一个组件,若添加多个组件,则最后添加的组件会覆盖前面的。
在这里插入图片描述
3.GridLayout(网格布局管理器,构造方法可指定水平垂直间距)
特点:规则的矩阵 ,系统自带的计算器用的就是这个布局。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190530173538321.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RhcmFleA==,size_16,color_FFFFFF,t_70

事件监听

事件监听机制的特点:

1.事件源

2.事件

3.监听器

4.事件处理

事件源:就是awt包或者swing包中的那些图形用户界面组件。(如:按钮)

事件:每一个事件源都有自己特点有的对应事件和共性事件。(如:鼠标单击事件)

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

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

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

在这里插入图片描述

 public static void main(String[] args) {
        Frame frame = new Frame();
        frame.setBounds(200,300,500,500);
        frame.setBackground(Color.yellow);
        frame.setVisible(true);
        Button button = new Button("exit");
        frame.add(button);
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        }
        }

我们通过添加监听窗口,重写里面的方法,当按钮按下的时候,这个程序就会关闭
TextField(文本编辑框)
在这里插入图片描述

public static void main(String[] args) {
  new TFFrame();
 }

}

class TFFrame extends Frame
{
 TFFrame()
 {
  TextField tf = new TextField();
  add(tf);
  tf.addActionListener(new TFActionListener());
  pack();
  setVisible(true);
 }
}

class TFActionListener implements ActionListener
{
 public void actionPerformed(ActionEvent e)
 {
  TextField tf = (TextField)e.getSource();//getSource()拿到事件源,在一个类里面想访问另一个类的事件源对象
  System.out.println(tf.getText());
  tf.setText("");//回车后TextFiled为空
 }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值