• Java基础——GUI编程(一)


    一、定义

    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的时候,又启了一个线程。

  • 相关阅读:
    完爆!用边缘容器,竟能秒级实现团队七八人一周的工作量
    手把手教你使用 cert-manager 签发免费证书
    手把手教你使用 Nginx Ingress 实现金丝雀发布
    Codeforces 534B Covered Path 贪心
    Codeforces 534A Exam 水
    Topcoder open 2015 Round 1A 250 Similars 枚举 + 状压
    Topcoder SRM 654 DIV1 500 FoldingPaper2 递归 + 枚举
    Topcoder SRM655 DIV2 250 BichromeBoard 水
    2015 Google code jam Qualification Round B 枚举 + 贪心
    2015 Google code jam Qualification Round A 水
  • 原文地址:https://www.cnblogs.com/1693977889zz/p/7144337.html
Copyright © 2020-2023  润新知