Java中GUI工具包AWT和Swing用法介绍

Java中GUI工具包AWT和Swing用法介绍

Java是一种编程语言,它具有丰富的GUI(图形用户界面)编程功能。Java中提供了两个常用的GUI工具包:AWT(注意大小写)和Swing,它们提供了大量的组件和技术,用于创建富有吸引力和交互性的应用程序。

AWT

AWT中的组件直接调用操作系统的本地GUI组件,因此,当用户界面更改时,AWT组件将自动更新。AWT包含一个系统中的 UI ,这与正在运行的操作系统的 UI 相似。例如,如果你在 Windows 中运行 Java 应用程序,则 AWT 将使用 Windows UI。

AWT组件的分类

  • 容器类组件:Frame、Window、Dialog、Panel、Applet等;
  • 控件类组件:Button、Label、CheckBox、RadioButton、TextField、TextArea、Choice、List等;
  • 布局管理器:AWT中的布局管理器有 BorderLayout、FlowLayout、GridLayout、GridBagLayout等。

AWT示例

示例1:创建一个简单的AWT窗口,包含一个Label和一个Button

import java.awt.*;
public class MyAWTExample extends Frame {
    public MyAWTExample() { 
        super("My AWT Example Window");
        setLayout(new FlowLayout());
        add(new Label("Welcome to AWT"));
        add(new Button("Click Me"));
        pack();
        setVisible(true);
    }
    public static void main(String[] args) {
        new MyAWTExample();
    }
}

示例2:使用GridLayout布局管理器创建一个包含3行2列按钮的AWT窗口

import java.awt.*;
public class MyAWTExample2 extends Frame {
    public MyAWTExample2() {
        super("My AWT Example Window 2");
        GridLayout grid = new GridLayout(3, 2);
        setLayout(grid);
        add(new Button("Button 1"));
        add(new Button("Button 2"));
        add(new Button("Button 3"));
        add(new Button("Button 4"));
        add(new Button("Button 5"));
        add(new Button("Button 6"));
        pack();
        setVisible(true);
    }
    public static void main(String[] args) {
        new MyAWTExample2();
    }
}

Swing

Swing是一个独立的GUI工具包,不直接调用操作系统本地GUI组件,而是绘制了自己的GUI组件,从而使 Swing 库的组件在所有平台上均具有相同的外观和行为。Swing具有更细致的控制能力,可以创建在不同的操作系统上具有相同外观的GUI界面。

Swing组件分类

  • 容器类组件:JFrame、JWindow、JDialog、JPanel等;
  • 控件类组件:JButton、JLabel、JCheckBox、JRadioButton、JTextField、JPasswordField、JTextArea、JComboBox、JList等;
  • 布局管理器:Swing中的布局管理器也有 BorderLayout、FlowLayout、GridLayout、GridBagLayout等,不同的是它们支持更复杂的布局。

Swing示例

示例3:创建一个简单的Swing窗口,包含一个JLabel和一个JButton

import javax.swing.*;
public class MySwingExample extends JFrame {
    public MySwingExample() {
        super("My Swing Example Window");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout());
        add(new JLabel("Welcome to Swing"));
        add(new JButton("Click Me"));
        pack();
        setVisible(true);
    }
    public static void main(String[] args) {
        new MySwingExample();
    }
}

示例4:使用GridBagLayout布局管理器创建一个包含2行2列按钮的Swing窗口

import javax.swing.*;
import java.awt.*;
public class MySwingExample2 extends JFrame {
    public MySwingExample2() {
        super("My Swing Example Window 2");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        GridBagLayout gridBag = new GridBagLayout();
        setLayout(gridBag);

        GridBagConstraints c = new GridBagConstraints();
        c.fill = GridBagConstraints.BOTH;
        c.weightx = 1;
        c.weighty = 1;
        c.insets = new Insets(5, 5, 5, 5);

        JButton b1 = new JButton("Button 1");
        c.gridx = 0;
        c.gridy = 0;
        gridBag.setConstraints(b1, c);
        add(b1);

        JButton b2 = new JButton("Button 2");
        c.gridx = 1;
        c.gridy = 0;
        gridBag.setConstraints(b2, c);
        add(b2);

        JButton b3 = new JButton("Button 3");
        c.gridx = 0;
        c.gridy = 1;
        gridBag.setConstraints(b3, c);
        add(b3);

        JButton b4 = new JButton("Button 4");
        c.gridx = 1;
        c.gridy = 1;
        gridBag.setConstraints(b4, c);
        add(b4);

        pack();
        setVisible(true);
    }
    public static void main(String[] args) {
        new MySwingExample2();
    }
}

以上就是AWT和Swing的介绍和使用示例,希望可以帮助你快速上手GUI编程。

阅读剩余 67%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中GUI工具包AWT和Swing用法介绍 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • JAVA中正则表达式小总结(整理)

    JAVA中正则表达式小总结(整理) 正则表达式的基本语法 正则表达式的语法分为两个部分,一个是元字符的语法,一个是限定符的语法。元字符代表一种类型的字符,在正则表达式中可以被用于匹配对应的字符,限定符用于限定匹配的次数。 元字符的语法 元字符 说明 . 匹配任意单个字符 \ 转义字符 [] 匹配中括号内的任意一个字符 [^] 匹配不在中括号内的任意一个字符 …

    Java 2023年5月27日
    00
  • Spring Security认证的完整流程记录

    下面我将详细讲解Spring Security认证的完整流程记录: 1. Spring Security是什么 Spring Security 是 Spring 提供的安全扩展框架,是一个框架组件,其目标是为基于 Spring 的应用程序提供声明性安全保护。 2. Spring Security 的认证流程 Spring Security 的认证流程可以概括…

    Java 2023年5月20日
    00
  • javascript框架设计读书笔记之种子模块

    《JavaScript框架设计读书笔记》中的“种子模块”是指一个可以独立运行的封装好的模块,可以作为一个基础模块,在不同的应用场景下被复用和拓展。这里提供一个完整的种子模块设计攻略,具体包括以下几步: 1.确定需求与通用性 首先需要明确自己的需求和所要设计模块的通用性。分析模块所需功能,设计出尽可能通用的接口和参数,使得该种子模块可以在多个应用场景下使用。 …

    Java 2023年6月15日
    00
  • 详解JVM基础之字节码的增强技术

    详解JVM基础之字节码的增强技术 JVM(Java Virtual Machine)是一台虚拟机,它将字节码解释成可执行代码。在Java技术中,字节码是Java类文件中的中间表示形式,并且它是可移植性的关键构成部分。在字节码增强技术中,我们可以使用字节码操作库修改字节码,以实现在程序运行时的动态织入。 一、字节码增强技术的概念 字节码增强技术是在字节码级别上…

    Java 2023年5月26日
    00
  • Java OOM原因以及解决方案

    Java OOM原因以及解决方案 在Java应用程序运行的过程中,由于程序中申请的内存空间超过了JVM所能提供的内存空间,就会出现OOM(Out of Memory)错误。下面我们将详细讨论OOM的原因、解决方案以及示例说明。 OOM原因 内存泄漏 当一个对象不再被程序使用时,它所占用的内存空间应该被JVM的垃圾回收机制清理掉。但是,如果程序中存在内存泄漏,…

    Java 2023年5月27日
    00
  • JavaScript DOM实现简单留言板

    下面是“JavaScript DOM实现简单留言板”的完整攻略。 一、准备工作 1.1 创建HTML文件 首先,我们要创建一个HTML文件,命名为“index.html”。在这个文件里编写HTML结构,用于显示留言板的相关内容。 <!DOCTYPE html> <html> <head> <meta charset=…

    Java 2023年6月15日
    00
  • Spring事务失效场景原理及解决方案

    Spring事务失效场景原理及解决方案 原理 Spring事务使用AOP实现,核心原理是在程序执行前后动态代理,在方法执行前开启一个事务,在方法执行后根据方法执行结果决定事务是提交还是回滚。但是在以下场景中,Spring事务可能失效: 在事务方法外部调用另一个事务方法时,当前事务被挂起,新的事务启动,第二个事务抛出异常回滚,当前事务并不会回滚。 在catch…

    Java 2023年5月20日
    00
  • java删除数组中的某一个元素的方法

    下面提供详细的“Java删除数组中的某一个元素的方法”的攻略。 1. 使用System.arraycopy方法删除数组中的元素 System.arraycopy方法能够在保持原数组中其他元素未变的前提下,将需要删除的元素移除,从而实现删除数组中某一元素的目的。 下面是该方式的代码示例: public static void main(String[] arg…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部