Java AWT Swing(图形化界面编程)(一)

ef9037fce71b4bd9b997441c157db38d.png

 

 

 

 

 

 

目录

1.简介

2.Java中的图像化界面----Awt与Swing

一、AWT编程

1.简介

2.AWT的继承体系

 3.container容器

3.1container继承体系

3.2.常见API

 3.3容器演示一

3.4容器演示二

3.5容器演示三

1.简介:

通常情况下,java语言一般是用来开发后台程序的,所谓的后台程序就是部署在服务器端的程序,默默的工作,用户是看不到任何界面的,所以很多情况下,学习java会感觉很枯燥。

8011f6bd3f8d401da783cdfb045bcef6.png

 

事实上,我们使用java语言同样可以完成图形化界面程序的开发,而学习图形化界面编程相对来说就会有趣很多,因为所见即所得,也就是说,我们写的大部分代码的执行效果,是可以通过图形化界面实实在在能够看得到的。

dc7276b6f98b441690b834dee52ce1bd.png

 

2.Java中的图像化界面----Awt与Swing:

java使用AWT和Swing相关的类可以完成图形化界面编程,其中AWT的全称是抽象窗口工具集(Abstract WindowToolkit),它是sun公司最早提供的GUI库,这个GUI库提供了一些基本功能,但这个GUI库的功能比较有限,所以后来sun公司又提供了Swing库。通过使用AWT和Swing提供的图形化界面组件库,java的图形化界面编程非常简单,程序只需要依次创建所需的图形组件,并以合适的方式将这些组件组织在一起,就可以开发出非常美观的用户界面。

 

一、AWT编程:

1.简介:

当JDK1.0发布时,Sun 提供了一套基本的GUI类库,这个GUl类库希望可以在所有平台下都能运行,这套基本类库被称为"抽象窗口工具集CAbstract Window Toolkit )”,它为Java应用程序提供了基本的图形组件。AWT是窗口框架,它从不同平台的窗口系统中抽取出共同组件,当程序运行时,将这些组件的创建和动作委托给程序所在的运行平台。简而言之,当使用AWT编写图形界面应用时,程序仅指定了界面组件的位置和行为,并未提供真正的实现,JVM调用操作系统本地的图形界面来创建和平台一致的对等体。
使用AWT创建的图形界面应用和所在的运行平台有相同的界面风格,比如在Windows操作系统上,它就表现出 Windows风格;在UNIX操作系统上,它就表现出UNIX风格。Sun希望采用这种方式来实现"Write Once,Run Anywhere "的目标。
 

 

2.AWT的继承体系:

所有和AWT编程相关的类都放在java.awt包以及它的子包中,AWT编程中有两个基类:Component和MenuComponent。
        Component:代表一个能以图形化方式显示出来,并可与用户交互的对象,例如Button代表一个按钮,TextField 代表一个文本框等;
        MenuComponent :则代表图形界面的菜单组件,包括MenuBar(菜单条)、Menultem (菜单项)等子类。

bd6ce46763444de0be77bc40bf550afd.png

 

其中Container是一种特殊的 Component,它代表一种容器,可以盛装普通的Component。
AWT中还有一个非常重要的接口叫LayoutManager,如果一个容器中有多个组件,那么容器就需要使用LayoutManager来管理这些组件的布局方式。
ae0f77e04492450aa91e91ee06c7c295.png

 3.container容器

3.1container继承体系:

3c805e66e1864e9bac4231f79d6db03e.webp

 

        1.Winow是可以独立存在的顶级窗口,默认使用BorderLayout管理其内部组件布局;
        2.Panel可以容纳其他组件,但不能独立存在,它必须内嵌其他容器中使用,默认使用FlowLayout管理其内部组件布局;
        3.ScrollPane是一个带滚动条的容器,它也不能独立存在,默认使用BorderLayout管理其内部组件布局;

3.2.常见API:

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


db9d5a9cc44446a89fb61372542b3b66.png

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


81dbbc15ea1e44258b85321b373b7922.png

 3.3容器演示一:

        使用window容器实现一个基本的窗口。

174446e0c4524fd294ef4b6cf08cb664.png

 

 

import java.awt.*;

/**
 * Window:窗口容器
 * Frame:创建窗口
 */
public class WindowDemo {
    public static void main(String[] args) {
        //1.创建一个窗口对象
        Frame frame = new Frame("测试window窗口");
        //2.指定窗口的位置、大小
        frame.setLocation(100,100);
        frame.setSize(500,300);
        //3.设置窗口对象可见
        frame.setVisible(true);
    }
}

3.4容器演示二:

        使用Panel容器,实现一个基本的按钮和文本框的窗口。

275c67711d0a4a77a1247d19e9513b4e.png

 

import java.awt.*;

/**
 * panel以及其他的容器,都不能独立存在,必须依附于window存在.
 * Panel:内嵌容器
 */
public class PanelDemo {
    public static void main(String[] args) {
        //1.创建一个window对象
        Frame frame = new Frame("演示Panel窗口");
        //2.创建一个Panel对象
        Panel panel = new Panel();
        //3.创建一个文本框和一个按钮,并且把他们放入到Panel容器中
        panel.add(new TextField("这里是一个测试文本"));
        panel.add(new Button("这里是一个测试按钮"));
        //4.把Panel放入到window中
        frame.add(panel);
        //5.指定窗口的位置、大小
        frame.setBounds(100,100,500,300);
        //6.设置窗口对象可见
        frame.setVisible(true);
    }
}

3.5容器演示三:

        通过ScrollPane容器,实现带有滚动条的窗口。

3bf02184d4b84d8ead4183f1d41d14b0.png

 

import java.awt.*;

/**
 * ScrollPane:含有滚动条的容器
 */
public class ScrollPaneDemo {
    public static void main(String[] args) {
        //1.创建一个window对象
        Frame frame = new Frame("演示ScrollPane窗口");
        //2.创建一个ScrollPane对象
        ScrollPane scrollPane = new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);
        //3.创建一个文本框和一个按钮,并且把他们放入到ScrollPane容器中
        scrollPane.add(new TextField("这里是一个测试文本"));
        scrollPane.add(new Button("这里是一个测试按钮"));
        //4.把ScrollPane放入到window中
        frame.add(scrollPane);
        //5.指定窗口的位置、大小
        frame.setBounds(100,100,500,300);
        //6.设置窗口对象可见
        frame.setVisible(true);
    }
}

程序明明向ScrollPane容器中添加了一个文本框和一个按钮,但只能看到一个按钮,却看不到文本框,这是为什么呢?这是因为ScrollPane使用BorderLayout布局管理器的缘故,而BorderLayout 导致了该容器中只有一个组件被显示出来。下一节将详细介绍布局管理器的相关知识。
 

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚风残照

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值