一、定义
GUI全称是Graphical User Interface,即图形用户界面。JDK中提供了AWT 和 Swing 两个包,用于GUI程序的设计和开发。
1.java .awt abstract Window Toolkit (抽象窗口工具包),它是 java 的早期版本,组件种类有限,需要调用本地系统方法实现功能,重量级,有点依赖于平台。
2.javax.SWing ,是sun公司在AWT 的基础上,建立的一套图形用户界面系统,提供了更多的组件,而且完全由java实现,增强了可移植性,轻量级。
SWing相当于AWT的升级版本,解决了跨平台操作的问题,但是,并不代表AWT就被彻底淘汰了,它是基础,了解它的性能还是很重要的。
二、AWT类层次关系
Container:为容器,是一个特殊的组件,该组件中可以通过add方法添加其他的组件进来。
简单的代码示例:
import java.awt.Frame;public class Test19 {public static void main(String[] args) { demo(); }static void demo() { Frame f = new Frame("这是我做的第一个窗口"); f.setSize(400, 400); f.setLocation(40, 60);// 左上角的坐标System.out.println("運行成功");// 验证程序是否被执行了 } }
如果做到上面的代码,从控制台的结果来看,程序没有挂掉,已经被执行了。只是想要的对话框并没有出现。
上面程序少一段代码:f.setVisible(true);
import java.awt.Frame;public class Test19 {public static void main(String[] args) { demo(); }static void demo() { Frame f = new Frame("这是我做的第一个窗口"); f.setSize(400, 400); f.setLocation(40, 60);// 左上角的坐标 f.setVisible(true);//使得窗口可见 System.out.println("運行成功");// 验证程序是否被执行了 } }
执行结果:(值得注意的是,这个小窗口,点击右上角的X,并不能使得该窗口关闭,这里需要我们自己去设置)
下面演示添加一个按钮的操作:
import java.awt.Button;import java.awt.Frame;public class Test19 {public static void main(String[] args) { demo(); }static void demo() { Frame f = new Frame("这是我做的第一个窗口"); f.setSize(400, 400); f.setLocation(40, 60);// 左上角的坐标f.setVisible(true);// 使得窗口可见Button b = new Button("按钮");// 需要导包f.add(b);// 添加该按钮System.out.println("運行成功");// 验证程序是否被执行了 } }
执行结果:(注意,有按钮的,按钮在没有设置大小和位置的时候,默认为占满边框了)
总结:
对于众多的GUI组件,根据其作用,又可以分为两大类,基本组件和容器。
基本组件:按纽,文本框之类,不能容纳其他组件。
容器:可以容纳其他组件,比如窗口、对话框等,所有的容器都是java.awt.Container 的直接或间接子类(上面的Frame 就是一个容器)
附,思考:
上面的程序,执行到 System.out.println("運行成功"); 就结束了,实际上这时main函数就结束了。但窗口还在。我们甚至还可以进行操作。那么一定是有别的前台线程在运行,可以理解为创建Frame的时候,又启了一个线程。
以上是Java的GUI编程的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

记事本++7.3.1
好用且免费的代码编辑器