学习内容:
      模块使用

      

      AWT是窗口框架

      它从不同平台的窗口系统中抽取出共同组件,当程序运行时,将这些组件的创建和动作委托给程序所在的运行平台。简而言之,当使用AWT编写图形界面应用时,程序仅指定了界面组件的位置和行为,并未提供真正的实现,JVM调用操作系统本地的图形界面来创建和平台一致的对等体。使用AWT创建的图形界面应用和所在的运行平台有相同的界面风格,比如在Windows 操作系统上,它就表现出 Windows 风格;在UNIX操作系统上,它就表现出UNIX风格。Sun希望采用这种方式来实现"Write Once,Run Anywhere "的目标。

      AWT继承体系

      AWT编程中有两个基类:Component和MenuComponent。

      Component :代表一个能以图形化方式显示出来,并可与用户交互的对象,例如Button代表一个按钮,TextField 代表一个文本框等;MenuComponent:则代表图形界面的菜单组件,包括MenuBar (菜单条)、Menultem (菜单项)等子类。其中Container是一种特殊的Component,它代表一种容器,可以盛装普通的Component。AWT中还有一个非常重要的接口叫LayoutManager,如果一个容器中有多个组件,那么容器就需要使用LayoutManager来管理这些组件的布局方式。

      Container包含

      Winow是可以独立存在的顶级窗口,默认使用BorderLayout管理其内部组件布局;

      Panel可以容纳其他组件,但不能独立存在,它必须内嵌其他容器中使用,默认使用FlowLayout管理其内部组件布局;

      Scrolleane是一个带滚动条的容器,它也不能独立存在,默认使用BorderLayout管理其内部组件布局;

      Component作为基类,提供了如下常用的方法来设置组件的大小、位置、可见性等。

      

      

      Container作为容器根类,提供了如下方法来访问容器中的组件

      

        

       LayoutManager布局管理器

      Label label = new Label("你好,世界");

      创建了一个lable组件,很多情况下,我们需要让lable组件的宽高和"你好,世界"这个字符串自身的宽高一致,这种大小称为最佳大小I由于操作系统存在差异,例如在windows上,我们要达到这样的效果,需要把该Lable组件的宽和高分别设置为100pX,20px,但是在Linux操作系统上,可能需要把Lable组件的宽和高分别设置为120pK,24px,才能达到同样的效果。

      创建了一个lable组件,很多情况下,我们需要让lable组件的宽高和"你好,世界"这个字符串自身的宽高一致,这种大小称为最佳大小I由于操作系统存在差异,例如在windows上,我们要达到这样的效果,需要把该Lable组件的宽和高分别设置为100pX,20px,但是在Linux操作系统上,可能需要把Lable组件的宽和高分别设置为120pK,24px,才能达到同样的效果。

LayoutManager布局管理器,可以根据运行平台来自动调整组件大小,程序员不用再手动设置组件的大小和位置了,只需要为容器选择合适的布局管理器即可。

      FlowLayout(流式布局)

      在FlowLayout布局管理器中,组件像水流一样向某方向流动(排列),遇到障碍(边界)就折回,重头开始排列。在默认情况下,FlowLayout布局管理器从左向右排列所有组件,遇到边界就会折回下一行重新开始。

      

      FlowLayout中组件中间距通过整数设置,单位是像素,默认是5个像素。默认左对齐。

      

      BorderLayout

      当改变使用BorderLayout的容器大小时,NORTH、SOUTH和CENTER区域水平调整,而EAST、WEST和CENTER区域垂直调整。使用BorderLayout有如下两个注意点:

      1.当向使用BorderLayout布局管理器的容器中添加组件时,需要指定要添加到哪个区域中。如果没有指定添加到哪个区域中,则默认添加到中间区域中;

      2.如果向同一个区域中添加多个组件时,后放入的组件会覆盖先放入的组件;

      GridLayout

      GridLayout布局管理器将容器分割成纵横线分隔的网格,每个网格所占的区域大小相同。当向使用GridLayout布局管理器的容器中添加组件时,默认从左向右、从上向下依次添加到每个网格中。与FlowLayout不同的是,放置在GridLayout.布局管理器中的各组件的大小由组件所处的区域决定(每个组件将自动占满整个区域)。

      

      

明天内容:
      GridBagLayout         CardLayout   BoxLayout  

      处理机制

遇到问题:

      无

学习java 7.21的更多相关文章

  1. 用Robocod游戏来学习JAVA

    Robocode(用游戏来学习Java技术还是用Java来玩游戏?)用你的JAVA编程技术来玩游戏吧!不会JAVA?那就用游戏来学习JAVA吧!什么是Robocode? 其实我对机器人一直很感兴趣.我 ...

  2. 推介一个学习JAVA的系列教程-狗鱼IT教程

    介绍一个学JAVA的零基础学习JAVA的网站,推介一个学习JAVA的系列教程-狗鱼IT教程 下面是java的系教程: 1、[java教程]Java 教程 2、[java教程]Java 简介 3、[ja ...

  3. [Java初探08]__简单学习Java类和对象

    前言 在前面的学习中,我们对面向对象的编程思想有了一个基本的了解,并且简单的了解了类和对象的定义.那么类和对象在Java语言中是如何表现的,这次,就从实际出发,学习一下一下类和对象在Java语言中的使 ...

  4. 零基础的人怎么学习Java

    编程语言Java,已经21岁了.从1995年诞生以来,就一直活跃于企业中,名企应用天猫,百度,知乎......都是Java语言编写,就连现在使用广泛的XMind也是Java编写的.Java应用的广泛已 ...

  5. 如何学习Java?

    一点感悟 java作为一门编程语言,在各类编程语言中作为弄潮儿始终排在前三的位置,这充分肯定了java语言的魅力,在实际项目应用中,我们已经无法脱离javaa(Ps当然你可以选择不使用),但它的高性能 ...

  6. 学习java之基础语法(三)

    学习java之基础语法(三) java运算符 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量.我们可以把运算符分成以下几组: 算术运算符 关系运 ...

  7. 零基础如何学习java更有效呢?

    零基础学java,不知道该如何入手?也不知道学习的方向,很多人会问零基础怎么样学习,有没有什么入门的书籍推荐:只要方法正确,零基础学好java也是有机会的哦. 一.理解Java思想 Java是一门面向 ...

  8. 积极主动敲代码,使用Junit学习Java程序设计

    积极主动敲代码,使用JUnit学习Java 早起看到周筠老师在知乎的回答软件专业成绩很好但是实际能力很差怎么办?,很有感触. 从读大学算起,我敲过不下100本程序设计图书的代码,我的学习经验带来我的程 ...

  9. 如何接触学习java

    信息科技必将是未来的潮流,Java语言必将在时代的进步中发挥不可估量的作用,未来,掌握好一门实用而且有良好应用前景的技术是你们的首要任务. 零基础怎么学Java 多年Java教育培训经验事实表明,零基 ...

随机推荐

  1. cm2 逆向分析

    目录 cm2 逆向分析 前言 查壳 逆向分析 encrypt函数 POC代码 cm2 逆向分析 前言 这是逆向实战之CTF比赛篇的第3篇,在这里我就不再讲的特别小白了,有些简单操作可能会略过. 查壳 ...

  2. django HTML 数据处理

    一.介绍 dgango  HTML 对 各种数据类型数据的调用展示 的个人工作总结 二.数据处理 1.元祖数据   t1 =('a','b','c',) 示例:    {{ t1.0 }}    {{ ...

  3. kail入侵xp实例

    Kali的IP地址是192.168.0.112 Windows XP的IP地址是192.168.0.108 本文演示怎么使用Metasploit入侵windows xp sp3. 启动msfconso ...

  4. Redis源码分析(intset)

    源码版本:4.0.1 源码位置: intset.h:数据结构的定义 intset.c:创建.增删等操作实现 1. 整数集合简介 intset是Redis内存数据结构之一,和之前的 sds. skipl ...

  5. Java测试开发--lambda函数式编程(六)

    1.Lambda 表达式,是jdk1.8特性,接口里只有一个方法. 举例说明 // ()参数列表 ->连接符 {方法体} 经常在匿名对象 testPerson(()->{System.ou ...

  6. webpack 之开发环境优化 source-map

    webpack 之开发环境优化 source-map /** * source-map:一种 提供源代码到构建后代码映射 技术 (如果构建后代码出错了,通过映射可以追踪源代码错误) * [inline ...

  7. Maven快速入门(五)Maven的依赖管理

    前面我们讲了maven项目中的最重要的文件:pom.xml 配置文件相关内容.介绍了pom 是如何定义项目,如何添加依赖的jar 包的等. 我们知道,在Maven的生命周期中,存在编译.测试.运行等过 ...

  8. Vue中computed计算属性

    话不多说,使用方法直接上代码//在模板中调用computedTest这个函数,切记不要在函数后添加()<template> <div class="home"&g ...

  9. 消息队列手动确认Ack

    以RabbitMQ为例,默认情况下 RabbitMQ 是自动ACK机制,就意味着 MQ 会在消息发送完毕后,自动帮我们去ACK,然后删除消息的信息.这样依赖就存在这样一个问题:如果消费者处理消息需要较 ...

  10. Mybatis:插入数据返回自增主键

    使用Mybatis作为工具连接MySQL,要求在插入数据之后返回自增主键 一开始也很迷惑,Mybatis使用insert之后,成功返回的是1,失败会报错或返回0,主键去哪找来 后来知道Mybatis可 ...