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编程的详细内容。
