news 2026/4/29 7:04:27

Java AWT图形界面编程入门指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java AWT图形界面编程入门指南

Java 图形界面编程 AWT 篇(1)

AWT(Abstract Window Toolkit)是 Java 最早的图形用户界面工具包,提供基础的 GUI 组件和事件处理机制。本部分将介绍 AWT 的核心概念和基础组件。


1.AWT 核心组件

AWT 组件位于java.awt包中,所有组件均继承自Component类:

  • Frame:顶层窗口,带标题栏和边框。
  • Panel:无边框容器,用于组合其他组件。
  • ButtonLabelTextField等基础控件。

组件层级关系:

Component → Container → Window → Frame ↓ Panel

2.创建简单窗口

以下代码创建一个带标题的窗口:

import java.awt.*; public class BasicFrame { public static void main(String[] args) { Frame frame = new Frame("AWT 示例窗口"); frame.setSize(400, 300); // 宽400像素, 高300像素 frame.setVisible(true); // 显示窗口 } }

3.布局管理器

AWT 通过布局管理器自动排列组件:

  • FlowLayout:按添加顺序水平排列(默认布局)。
  • BorderLayout:分为东、西、南、北、中五个区域。
  • GridLayout:网格布局,固定行/列数。

示例:使用BorderLayout

Frame frame = new Frame("布局示例"); frame.setLayout(new BorderLayout()); // 设置布局 Button btnNorth = new Button("北"); Button btnCenter = new Button("中"); frame.add(btnNorth, BorderLayout.NORTH); // 添加到北部 frame.add(btnCenter, BorderLayout.CENTER); // 添加到中部

4.事件处理基础

通过addActionListener()实现按钮点击响应:

import java.awt.*; import java.awt.event.*; public class EventDemo { public static void main(String[] args) { Frame frame = new Frame("事件示例"); Button btn = new Button("点击我"); btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("按钮被点击!"); } }); frame.add(btn); frame.setSize(300, 200); frame.setVisible(true); } }

5.关闭窗口处理

默认点击关闭按钮无响应,需添加窗口监听器:

frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); // 退出程序 } });

总结:本节介绍了 AWT 的:

  1. 核心组件(Frame,Panel
  2. 布局管理器(FlowLayout,BorderLayout
  3. 事件处理机制(ActionListener
    在后续章节中,将深入探讨高级组件和自定义绘图。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 7:02:20

Neo4j笔记(四):一篇文章如何入库的

摘要 一直很好奇,一篇文章是如何进入到图数据库的,毕竟一篇文章啥格式都有,而写入到图数据库还必须遵从规则和语法,所以这注定不是一个普通RAG或者SQL的过程。此篇讲带大家一起看一下这里都需要经历哪些过程。 Graph RAG 把文章变…

作者头像 李华
网站建设 2026/4/29 7:00:13

Arm嵌入式多线程编程与线程安全实践

1. Arm嵌入式环境下的线程安全基础在嵌入式系统开发中,多线程编程面临着比通用计算机更复杂的挑战。Arm架构的微控制器广泛应用于实时嵌入式系统,其线程安全实现需要考虑硬件特性、编译器支持和实时性要求等多方面因素。1.1 嵌入式多线程的特殊性嵌入式环…

作者头像 李华
网站建设 2026/4/29 6:52:23

基于Cosmos-Reason1-7B的智能客服场景实战:意图识别与多轮对话

基于Cosmos-Reason1-7B的智能客服场景实战:意图识别与多轮对话 最近和几个做电商的朋友聊天,他们都在头疼同一个问题:客服成本越来越高,但服务质量却很难保证。尤其是遇到一些复杂的咨询,比如“我上周买的那个蓝色的衣…

作者头像 李华
网站建设 2026/4/29 6:51:49

06华夏之光永存・开源:黄大年茶思屋23期全套技术攻关总结篇 【全域技术沉淀 · 华为通信体系战略升维总述】

06华夏之光永存・开源:黄大年茶思屋23期全套技术攻关总结篇 【全域技术沉淀 华为通信体系战略升维总述】 本期黄大年茶思屋23期全五道核心技术方向,已完成TDD空口信道重构、FDD权值联合优化、大规模上行干扰治理、多QoS发射机调度、分布式收发机协同全链…

作者头像 李华