GUI-1-AWT-Swing
GUI
即:Graphical User Interface 图形用户界面
用于自己制作人机界面。当然,所有程序设计语言都有GUI设计功能
java中有哪些类库来用于GUI设计
分别位于java.awt 、 javax.swing 。简记为 AWT、Swing
AWT
AWT处理用于界面元素的时候,是把这些元素的创建和行为委托给目标平台的本地GUI工具进行处理
故所创建的使用的界面或者按钮具有本地外观的感觉,所以并不是完全跨平台。。。
Swing
Swing是在AWT基础上发展的,Swing中自然也用到很多AWT的知识。
但比AWT改进了用户界面,而且所需要的系统资源更少,Swing是纯Java组件,完全实现了跨平台,
AWT概述
即:Abstract Window Toolkit 抽象窗口工具包
这里面有一套与本地的图形界面进行交互的接口,是Java提供的用来设置图形用户界面的简单工具。
AWT中有两个抽象基本类型将组件分为两大类。分别为 MenuComponent、Component
Component就是其他的AWT的组建的抽象基本类,其中Container表示容器,容器用来存放其他的组件,有两种类型的容器:Window、Panel、
Window
不依赖于其他容器,独立存在。有两个子类:Frame、Dialog。
Frame类带有标题、可以调整大小
Dialog类可以被移动,但不能改变大小。
package test1;
import java.awt.*;
public class Class1{
public static void main(String[] args){
//创建Frame对象,设置长、宽,并可见
Frame f = new Frame("Frame窗口");
f.setSize(300,200);
f.setVisible(true);
//创建Dialog对象,设置长、宽,并可见
Dialog d = new Dialog(f,"Dialog窗口");
d.setSize(100,100);
d.setVisible(true);
}
}
然而,我都能拖动并调整大小。。。。
这时候弹出两个窗口是无法直接关闭的,只能对程序强制停止。
如果要实现单击关闭窗口,必须用Frame注册WindowListener监听器。
Panel
不能单独存在,只能存在于其他的容器中(Window或其子类)
package test1;
import java.awt.*;
public class Class1{
public static void main(String[] args){
//创建Frame对象,设置长、宽,并可见
Frame f = new Frame("Frame窗口");
Panel p = new Panel();
p.add(new Button("按钮"));
f.add(p);
f.setSize(300,200);
f.setVisible(true);
}
}
运行失败
The package java.awt is not accessible
把以下代码添加到module-info.java中,也就是正在运行的类的旁边。似乎是eclipse才会遇到的问题。
module test1 {
requires java.desktop;
}
下一节接 AWT事件处理
---------------------------
“朝着一个既定的方向去努力,就算没有天赋,在时间的积累下应该也能稍稍有点成就吧。”