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

yizhihongxing

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编程。

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

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

相关文章

  • 浅谈springfox-swagger原理解析与使用过程中遇到的坑

    浅谈springfox-swagger原理解析与使用过程中遇到的坑 1. 什么是springfox-swagger springfox-swagger是一个用于生成API文档的Java库,它可以自动化生成API文档,并提供了一个UI界面,方便用户查看和测试API接口。它基于Swagger规范,可以与Spring框架无缝集成,支持Spring MVC、Spri…

    Java 2023年5月18日
    00
  • springboot+springJdbc+postgresql 实现多数据源的配置

    实现多数据源的配置通常需要以下几个步骤: 引入相关依赖 配置多个数据源 配置对应的JdbcTemplate 使用不同的数据源来操作数据库 以下是具体的步骤和代码示例: 引入相关依赖 在项目中引入以下依赖: <dependency> <groupId>org.springframework.boot</groupId> &l…

    Java 2023年6月16日
    00
  • 浅谈解决Hibernate懒加载的4种方式

    浅谈解决Hibernate懒加载的4种方式 在使用Hibernate时,我们经常会遇到懒加载的问题。当我们从数据库中查询一个实体类对象时,Hibernate并不会直接查询与该对象关联的所有数据。它只会查询该实体类对象的基本属性,而关联数据则会在访问时再进行查询。这种机制称为懒加载。然而,有时候我们需要一次性把所有关联数据都查询出来,这时候就需要解决懒加载的问…

    Java 2023年5月19日
    00
  • java邮件乱码的彻底解决方案

    下面是“Java邮件乱码的彻底解决方案”的完整攻略: 1. 问题描述 在使用Java程序发送邮件时,邮件内容中的中文字符可能会出现乱码现象,特别是在收件人使用的邮件客户端接收邮件时。如何避免这个问题,保证邮件内容能够正常显示呢? 2. 解决方案 Java发送邮件的原理是通过SMTP协议将纯文本或HTML格式的内容发送到邮件服务器,然后由邮件服务器将邮件传递到…

    Java 2023年5月20日
    00
  • MyBatis简介与配置MyBatis+Spring+MySql的方法

    MyBatis简介 MyBatis是一个优秀的基于Java的持久层框架,它内部封装了JDBC,通过XML或注解将Java对象和SQL语句进行映射,使得开发者可以通过简单的配置和少量代码来进行复杂的数据库操作。 配置MyBatis+Spring+MySQL 步骤一:创建Maven项目 首先,创建一个基于Maven的Java项目,命名为mybatis-demo。…

    Java 2023年5月20日
    00
  • java中@DateTimeFormat和@JsonFormat注解的使用

    讲解java中@DateTimeFormat和@JsonFormat注解的使用。 @DateTimeFormat和@JsonFormat注解的概述 在Java中,我们常常需要处理日期和时间相关的数据,而日期和时间的格式化是一个必须注意的问题。@DateTimeFormat和@JsonFormat都是Spring框架中的注解。它们可以为Java中的日期和时间类…

    Java 2023年5月20日
    00
  • 什么是垃圾回收的GC日志?

    垃圾回收器(Garbage Collector,GC)是Java虚拟机(JVM)中的一个子系统,负责对程序中不再使用的对象进行回收和释放内存。GC日志是用于分析和调优GC行为的重要工具,它记录了JVM在执行垃圾回收时所进行的操作,并可供开发者分析GC的性能、回收效率、内存使用情况等信息。以下是垃圾回收的GC日志的详细使用攻略。 什么是GC日志? GC日志是J…

    Java 2023年5月10日
    00
  • SpringBoot整合java诊断工具Arthas解读

    SpringBoot整合java诊断工具Arthas解读 简介 Arthas是一款阿里开源的Java诊断工具,它可以帮助开发者找到应用运行过程中的问题,定位性能瓶颈,进行动态代码修改等。本攻略将介绍如何在SpringBoot项目中使用Arthas进行诊断调试。 步骤 1. 导入依赖 在SpringBoot项目的pom.xml中添加arthas依赖,如下所示:…

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