JAVA使用AWT和Swing 类完成图形用户界面编程,AWT全称是抽象窗口工具集(Abstract Window Toolkit),它是最早的sun提供的GUI库(Graphics User Interface)图形用户界面。

  AWT是窗口框架,它从不同平台的窗口系统中抽取共同组件,当使用AWT编写图形界面应用时,程序仅指定了界面组件的位置和行为,并为提供真正的实现,JVM 调用操作系统本地的图形界面来创建和平台一直的对等体。

  1.   java中所有和AWT编程相关的类放在java.awt包以及他的子包中。  AWT中有两个基类:Component和MenuComponent。

     Component代表一个以图形化方式显示出来,并可与用户交互的对象;

     MenuComponent则代表图形界面菜单组件,包括MenuBar(菜单条),MenuItem(菜单项)等。

    

    2.AWT容器

        在AWT中 Container  是一种特殊的Component。它代表一种容器。Container是Component的子类 。容器本身也是一个组件,具有组件的性质。可以调用Component类中的所有方法。

    AWT提供了两种主要容器类型

    • Window:可以独立存在的窗口。
    • Panel:可作为容器容纳其他组件,但不能独立存在,必须添加到其他容器中。 
      Frame代表常见的窗口,它是Window类的子类,
    • Frame 对象有标题,允许通过拖拉来改变窗口的位置,大小。
    • 初始化时不可见 ,可用setVisible(true)使其显示出来。
    • 默认使用 BorderLayout作为其布局管理器。

 

  

  通过Frame创建一个窗口

package AWT1;
import java.awt.Frame;
public class FrameTest {
public static void main(String[] args) {
Frame f = new Frame("测试窗口");//标题
//设置窗口的大小和位置
f.setLocation(30, 30);
f.setSize(250, 200);
//将窗口显示出来(默认隐藏)
f.setVisible(true);
}
}

注意:设置窗口位置的下x,y 是从电脑屏幕的左上角开始。     ps(请问一下我在其他博客上看到的为什么背景是白色的,难道真的是桌面图片是白色?)

如果点击此窗口的右上角的“×”,窗口不会关闭,这是因为该窗口还未编写任何事物响应,可以通过关闭程序命令关闭。

  通过Panel作为容器来盛装一个文本框和一个按钮,并将该Panel对象添加到Frame对象中

  

 package AWT1;
import java.awt.Button;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextField;
public class FrameTest {
public static void main(String[] args) {
Frame f = new Frame("测试窗口");
//创建一个Panel 容器
Panel p=new Panel();
//向panel中添加两个组件
p.add(new TextField(20));//20列,虽然我不知道什么是20列。
p.add(new Button("单机我"));//按钮上的文字
//将panel放在frame
f.add(p);
f.setBounds(30, 30, 250, 200);
f.setVisible(true);//默认frame隐藏
}
}

ps(  TextField(20)  20列是指什么20列  )

  

   ScrollPane 是一个滚动条的容器,它不能独立存在,必须被添加到其他容器。

    ScrollPane 特点

      1.可作为容器盛装其他组件,当组件占用空间过大时,ScrollPane 自动产生滚动条,当然也可以通过指定特点的构造器参数来指定默认具有滚动条。

       2. 不能单独存在,必须放置到其他容器中

       3. 默认使用BorderLayout作为其布局管理器。

      

      使用ScrollPane容器来代替Panel容器

public class FrameTest {
public static void main(String[] args) {
Frame f = new Frame("测试窗口");
//创建一个scrollPane 容器,指定总是具有滚动条。
ScrollPane sp= new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);
//向scrollPane容器中添加两个组件
sp.add(new TextField(20));
sp.add(new Button("click"));
//将scrollPane 容器添加到Frame 对象中
f.add(sp);
f.setBounds(30, 30, 250, 200);
f.setVisible(true);
}
}

注意:程序明明有一个文本框,一个按钮,但只能看到一个按钮,却看不到文本框? 这是因为ScrollPane 使用BorderLayout布局管理器,导致了只有一个组件显示出来。

  

 本人毫无编程经验,专科生,一边学一边分享。也希望有大牛帮我回答文章中的问题

第一次写,什么也不懂,写博客的原因时想让大家能指出我的错误,欢迎指出。

JAVA中AWT编程的更多相关文章

  1. Java中AWT、Swing与SWT三大GUI技术的原理与效率差异

    Java中AWT.Swing与SWT三大GUI技术的原理与效率差异 转 https://blog.csdn.net/weixin_37703598/article/details/81843810   ...

  2. java中 awt Graphics2D

    Graphics2D ,Graphics 类,提供了对几何形状.坐标转换.颜色管理和文本布局更为复杂的控制.它是用于在 Java(tm) 平台上呈现二维形状.文本和图像的基础类.验证码生成可以用到此类 ...

  3. Java中网络编程

    以下内容引用自http://wiki.jikexueyuan.com/project/java/networking.html: 术语网络编程指编写跨多种设备(电脑)执行的,设备使用一个网络互相连接的 ...

  4. java中Swing编程再度练习篇

    总结: 注意理解frame的层级关系 package com.da; //添加背景图片 //我只实现了插入图片.但并没有实现是背景图片 import javax.swing.JFrame; impor ...

  5. Java 中函数式编程方法形参为基本类型和引用类型

    简单复习下 基本数据类型值传递 值传递,原变量的值不会被修改 private final Consumer sout = System.out::println; @Before public voi ...

  6. Java中的函数式编程(五)Java集合框架中的高阶函数

    写在前面 随着Java 8引入了函数式接口和lambda表达式,Java 8中的集合框架(Java Collections Framework, JCF)也增加相应的接口以适应函数式编程.   本文的 ...

  7. Java中的函数式编程(六)流Stream基础

    写在前面 如果说函数式接口和lambda表达式是Java中函数式编程的基石,那么stream就是在基石上的最富丽堂皇的大厦. 只有熟悉了stream,你才能说熟悉了Java 的函数式编程. 本文主要介 ...

  8. Java基础——网络编程(二)

    一.套接字 Socket 网络驱动程序提供给应用程序编程的接口和一种机制,可以比喻成一个港口码头 应用程序只要把货放在这,就算完成了货物的运送.它在应用程序中创建,通过一种绑定机制与驱动程序建立关系, ...

  9. Java中的Swing及AWT又称GUI编程

    Java中的Swing及AWT又称GUI编程. 关于学习Java要不要学Swing及AWT,这个完全取决于个人的开发及发展方向. 如果从事web方向的开发,则可以不用学习Swing及AWT. 如果从事 ...

随机推荐

  1. mfc动态演示排序算法

    实现的排序算法 冒泡排序.选择排序.快速排序 具体实现 选用mfc中的单文档框架 ①SetTimer函数的用法. ②使用画笔画直线. ③使用FillSolidRect()函数覆盖某一矩形区域内的内容: ...

  2. YII框架CGridView sql有条件分页实现

    $SQL="SELECT * FROM {{user}} WHERE `typeff`=2 order by create_time desc"; $SQL_count=" ...

  3. websocket(二)--简单实现网页版群聊

    websocket可以实现服务端的消息推送,而不必在客户端轮询,大大的节省的资源,对于实时通讯来说简直是个大喜讯. 在上一篇文章中介绍了协议握手,这篇文章将通过实现简单的群聊来帮助进一步了解webso ...

  4. 玩转DWZ (一)---项目中怎么使用dwz

    最近一直在找一个完全开源的web客户端框架,看到了dwz,虽然不知道到底怎么样,但还是支持国产,先学习一下.这篇文章先说一下怎么在项目里使用dwz框架. 首先先下载dwz:https://code.c ...

  5. python实现简单的一个刷票点赞功能

    投票网址:http://best.zhaopin.com/?sid=121128100&site=sou 在以上网址中找到"XXX技术有限公司",通过Python进行刷票. ...

  6. 关于top命令的使用

    在服务器运维过程中,我们有时需要知道当前状态下的系统运行性能,该如何获取呢?今天,咱们聊一下关于top这个小命令的一些知识. top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资 ...

  7. 在MFC中怎么获得Excel文档中已经使用了的行数和列数

    _Worksheet ws;Range range; range = ws.GetUsedRange();//获得Worksheet已使用的范围range = range.GetRows();   / ...

  8. Python基础语法 系统学习

    Python 中的基础语法最大的特点就是优雅和简洁.入门学习Python的难度相比较其他语言也比较小. 我个人比较推荐以下三个学习方式(根据个人情况和喜好,可选择任意一个): 1.  菜鸟在线:出品的 ...

  9. Spring AOP就是这么简单啦

    前言 只有光头才能变强 上一篇已经讲解了Spring IOC知识点一网打尽!,这篇主要是讲解Spring的AOP模块~ 之前我已经写过一篇关于AOP的文章了,那篇把比较重要的知识点都讲解过了一篇啦:S ...

  10. selenium处理iframe定位于切换问题解决办法

    首先还是围绕以下几个方面来看: 1.什么是iframe? 2.为什么我们要定位iframe? 3.我们怎样定位iframe,与切换iframe? 1.什么是iframe? ♦ b/s架构都使用ifra ...