GUI编程

Swing和AWT都是java开发GUI经常使用的架势,但是其组件较少而且运行时还需要JRE环境;

  1. 抽象窗口工具包(Abstract Window Toolkit,AWT),其作用是给用户提供基本的界面组件,如窗口、按钮、菜单等。支持剪贴板。数据传输和图像操作等。 
  2. Swing是在AWT基础上拓展而来的,是提供图形用户界面的类库;主要包括两种类型的组件:顶层容器和轻量级组件;
  • 顶层容器主要包含:JFrame、JApplet、JDialog、JWindow等;
  •   轻量级组件主要是继承AWT的Container类的JComponent类及其子类,主要包含JTextArea、JFextField、JButton、JMenu、JPanal等;

AWT编程实例:

package com.zhang.demo;

import javax.swing.*;
import java.awt.*;

public class AWTTest {
    public static void main(String[] args) {
        //创建容器和设置布局
        JFrame frame = new JFrame("理解AWT");
        frame.setLayout(new BorderLayout());
        //创建组件添加到容器中
        Button button = new Button("按钮");
        frame.add(button);
        //设置结构frame的位置与大小关系
        frame.setBounds(300,200,400,300);
        //设置窗口可见
        frame.setVisible(true);
    }
}

上述代码编译运行结果如下:

组件                      

  • 组件(Component)是构成GUI的基本要素,通过对不同的事件响应来完成和用户之间的交互;
  • 组件一般是作为一个对象放置在容器(Container)内,如Panal(面板)、Frame(窗口)等;
  • 组件是通过容器的add方法添加到容器中。
  • 容器类Container类是组件Component的子类,实际上也是一个组件,具有所有组件的性质,但他是用来容纳其他组件和容器的。

布局管理器

java中布局管理器是一个实现了LayoutManager接口的任何类的实例,由容器setLayout方法设定,如果没有此方法,则布局管理器使用默认的布局管理器;

边界布局(BorderLayout)

BorderLayout 将容器划分为5部分,容器顶部(NORTH)、容器底部(SOUTH)、容器东部(EAST)、容器西部(WEST)、容器中心(CENTER)、

实例:

package com.zhang.demo;

import java.awt.*;

public class BorderLayoutTest {
    public static void main(String[] args) {
        Frame frame = new Frame();

        frame.setTitle("使用边界布局管理器");
        frame.setLayout(new BorderLayout());
        Button buttonEast = new Button("East");
        Button buttonWest = new Button("West");
        Button buttonSouth = new Button("South");
        Button buttonNorth = new Button("North");
        Button buttonCenter = new Button("Center");

        //把按钮放置到Frame窗体时按照东西南北中五个方向排列;
        //这样容易检查出错误 因为这样写如果写错了编译器会提示出错

       frame.add(buttonEast,BorderLayout.EAST);
        frame.add(buttonWest,BorderLayout.WEST);
        frame.add(buttonSouth,BorderLayout.SOUTH);
        frame.add(buttonNorth,BorderLayout.NORTH);
        frame.add(buttonCenter,BorderLayout.CENTER);

        frame.setBounds(300,200,400,300);
        frame.setResizable(true);
        frame.setVisible(true);

    }
    }

上述代码编译运行的结果如下图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值