AWT(Abstract Window TookIT)是java用于创建用户界面和绘制图形的所有类

AWT组件和容器

AWT包含了很多类和接口,用于java Application的GUI(图形用户界面)编程。GUI的各种元素,窗口、按钮、文本框、等由java的类来表示,使用AWT所涉及的类一般都在java.awt的包及其子包中,Container和Component是AWT两个核心类

编写界面致命的缺点是:图形和操作系统有关,awt开发的界面在不同的操作系统上呈现的界面是不同的,所以后期开发使用swing比较多,但即使如此swing离不开AWT

两种常用的Container

1Windwo:其对象表示自由停泊的顶级窗口

2.Panel其对象可以容纳其他Component对象,但不能独立存在,必须加到其他Container中

Frame是Window子类,由Frame或其子类创建的对象为一个窗体

创建一个窗口;

package text4;
import java.awt.color.*;
import java.awt.Color;
import java.awt.Frame; public class Hello{
public static void main(String[] args) {
//创建一个Frame对象
Frame f=new Frame();
//设置Frame的大小
f.setSize(300, 200);
//设置位置
f.setLocation(20,30);
//设置背景色
f.setBackground(Color.YELLOW);
//设置可见
f.setVisible(true); } }

在java窗口编程一般在Panel中添加组件,再将Panel组件添加到Frame中,Panel对象可以看成是容纳Component的空间,可以拥有自己的布局

在窗口中增加面板;

package text4;
import java.awt.color.*;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Panel;
public class Hello{
public static void main(String[] args) {
//创建一个Frame对象
Frame f=new Frame();
//设置Frame的大小
f.setSize(300, 200);
//设置位置
f.setLocation(20,30);
//设置背景色
f.setBackground(Color.RED);
//创建一个Panel
Panel panel1=new Panel(null);
//创建panel的大小
panel1.setSize(100,100);
//设置背景色
// panel1.setBackground(Color.BLUE);
//设置位置
panel1.setLocation(100,50);
//将panel放到Frame中
f.add(panel1);
//设置可见
f.setVisible(true);
} }

布局管理器

是开发过程中,每设计一个窗体,都要向其中添加若干组件。随着组件的增多,排列起来就会杂乱无章,这时候就需要布局管理器,

BorderLayout

BoxLayout

FlowLayout

GirdBagLayout

GirdLayout

CardLayout

1.FlowLayout布局

流失布局管理器可以让组件从左往右依次排列,排满一行就换一行,行高是由控制组件高度决定的。FlowLayout是所有的Panel类型容器默认布局,默认情况下是居中对齐,(FlowLayout.ENTER)

使用流式布局(对齐)

package text4;

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame; public class Hello {
public static void main(String[] args) {
// 居中
layout("居中", FlowLayout.CENTER);
// 开始边对齐
layout("开始边对齐", FlowLayout.LEADING);
// 向左
layout("向左", FlowLayout.LEFT);
// 向右
layout("向右", FlowLayout.RIGHT);
// 结束边对齐
layout("结束边对齐", FlowLayout.TRAILING);
} private static void layout(String title, int type) {
// 创建一个title,标题为title
Frame frame = new Frame(title);
// 设置布局方式为FlowLayout
frame.setLayout(new FlowLayout(type));
// 设置窗口大小
frame.setSize(400, 300);
// 设置窗口位置
frame.setLocation(20, 30);
// 创建多个按钮
Button btn1 = new Button("1");
Button btn2 = new Button("2");
Button btn3 = new Button("3");
Button btn4 = new Button("4");
// 添加按钮
frame.add(btn1);
frame.add(btn2);
frame.add(btn3);
frame.add(btn4);
// 设置窗口可见
frame.setVisible(true);
}
}

2.BorderLayout布局(东西南北中)

package text5;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame; public class Hello {
public static void main(String[] args) {
// 创建一个Frame,标题是BorderLayout布局
Frame f = new Frame("BorderLayout 布局");
// 设置Frame的大小
f.setSize(400, 300);
// 设置布局管理器
f.setLayout(new BorderLayout());
// 创建5个按钮
Button[] b = new Button[5];
b[0] = new Button("东");
b[1] = new Button("西");
b[2] = new Button("南");
b[3] = new Button("北");
b[4] = new Button("中");
f.add(b[0], BorderLayout.EAST);
f.add(b[1], BorderLayout.WEST);
f.add(b[2], BorderLayout.SOUTH);
f.add(b[3], BorderLayout.NORTH);
f.add(b[4], BorderLayout.CENTER);
//
f.setVisible(true); }
}

3.GridLayout布局,将控件按网络排列,基本布局策略是把容器的空间划分成若干行和若干列的区域(行列)

package text5;

import java.awt.GridLayout;
import java.awt.Frame;
import java.awt.Button; public class Hello2 {
public static void main(String[] args) {
// 创建一个Frame,标题是GridLayout
Frame f = new Frame("GridLayout 布局");
// 设置Frame的大小
f.setSize(400, 300);
// 设置布局管理器
f.setLayout(new GridLayout(2, 3));// 两行三列
// 添加按钮
for (int i = 0; i < 6; i++) {
Button btn = new Button(String.valueOf(i));// 将int转换成字符串
f.add(btn);
}
f.setVisible(true);
}
}

4.卡片式布局CardLayout(有点小复杂)

AWT的应用的更多相关文章

  1. AWT编程学习01(未完成)

    本文资料来源:<java疯狂讲义> 作者:李刚 终于要学习这一部分了~~虽然很多人(明明是绝大多数的人)说学这个没有用...而且有点过时了...但我觉得很有意思啊...感兴趣就学~~反正多 ...

  2. AWT事件处理

    AWT事件处理基本概念 AWT事件处理过程中,主要涉及3类对象: ①   Event(事件):用户对组件的一个操作,称之为一个事件,以类的形式出现,例如,键盘操作对应的事件类是KeyEvent.其实例 ...

  3. AWT布局管理器

    布局管理器 容器内可以存放各种组件,而组件的位置和大小是由容器内的布局管理器来决定的.在AWT中为我们提供了以下5种布局管理器: ①   FlowLayout 流式布局管理器 ②   BorderLa ...

  4. Java基础---AWT

    流式布局FlowLayout package net.zyz; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...

  5. 用户图形界面(GUI)学习笔记(一)——Swing与AWT

    一.Swing与AWT 对象窗口工具箱(Abstact Window Toolkit,AWT),是JAVA1.0刚出现的时候,包含的一个GUI设计类库.它将处理用户界面元素的任务委派给每个目标平台(W ...

  6. Atitit.java图片图像处理attilax总结  BufferedImage extends java.awt.Image获取图像像素点image.getRGB(i, lineIndex); 图片剪辑/AtiPlatf_cms/src/com/attilax/img/imgx.javacutImage图片处理titit 判断判断一张图片是否包含另一张小图片 atitit 图片去噪算法的原理与

    Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image 获取图像像素点 image.getRGB(i, lineIndex); ...

  7. tomcat 启动参数 Xms, Xmx, XX:MaxNewSize, XX:PermSize, -XX:MaxPermSize, Djava.awt.headless

    在 tomcat/bin/catalina.sh 的 第一行#!/bin/sh 下添加 JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxNewSiz ...

  8. java.awt.Robot

    import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; public class Te ...

  9. java:提示Could not initialize class sun.awt.X11GraphicsEnvironment

    前几天发现tomcat提示 Could not initialize class sun.awt.X11GraphicsEnvironment  问题.以为不验证,就没太关注,今天发现,有同事提示了个 ...

  10. paip.提升效率--gui 的选择--swing最佳实践swt awt

    paip.提升效率--gui 的选择--swing最佳实践swt awt ////////////////弹出消息框. ////////////////myeclipse swing 开发最佳实践.. ...

随机推荐

  1. Scala(三)

    一.控制语句 var x = 40 if(x == 40){ println("greate") } 二.循环 (1) 一般循环 while(a>1){ if(a==2){ ...

  2. [angularjs] AngularJs 知识回顾

    AngularJs 知识回顾 简介 1.通过指令扩展了 HTML,通过表达式绑定数据到 HTML: 2.一个 Js 框架: 3.指令: 通过被称为 指令 的新属性来扩展 HTML, 即为应用添加新功能 ...

  3. .NET CORE 使用Session报错:Session has not been configured for this application or request

    报错信息:Session has not been configured for this application or request 解决方案:在Startup.cs文件中的Configure方法 ...

  4. Spring笔记04_AOP注解开发_模板_事务

    目录 1. Spring基于AspectJ的注解的AOP开发 1. 1 SpringAOP的注解入门 1.2 Spring的AOP的注解通知类型 1.2.1 @Before:前置通知 1.2.2 @A ...

  5. input 图片上传,第二次上传同一张图片失效

    <input type="file" onchange="angular.element(this).scope().addPhoto(this,event)&qu ...

  6. 设置抓包工具Fiddler的host

    大家都知道在电脑本地上有一个Host文件. Hosts文件主要作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定.可以用文本文件打开!当用户在浏览器中输入一个需要登录的网址时,系统 ...

  7. grid++报表使用时注意事项

    #开始使用:Grid++Report 可以在 Visual C#.Net 与 Visual Basic.Net 下的 WinForm 项目中使用.在项目中使用 Grid++Report 之前,首先必须 ...

  8. 转摘Linux命令工作中常用总结

    Linux命令工作中常用总结   1. 搜索 在vi和vim中如果打开一个很大的文件,不容易找到对应的内容,可以使用自带的搜索关键字进行搜索定位: 在vi和vim界面中输入:"/" ...

  9. SVN下载与安装

    首先打开浏览器上百度搜索“SVN”如下图: 或者点击:https://tortoisesvn.net/downloads.html 打开后链接后选择Downloads,选择需要下载的版本,比如我电脑是 ...

  10. HDFS副本放置策略

    1.第一个副本放置在上传文件的DataNode上,如果是集群外提交,则随机挑选一个磁盘不太满,CPU不太忙的节点. 2.第二个副本放置在与第一个副本不同的机架上. 3.第三个副本放置在与第二个副本同机 ...