Java AWT图形编程实战
要执行这些 Java AWT 图形程序你需要将它们分别保存为独立的.java文件并使用javac编译然后用java命令运行。以下是每个程序的执行步骤和预期效果。1. 程序清单与执行步骤程序文件主要功能编译命令运行命令GraphicsDemo.java绘制线条、矩形、椭圆、圆弧、多边形等基本图形。javac GraphicsDemo.javajava GraphicsDemoResizeMe.java创建一个窗口点击鼠标会循环改变窗口大小并在窗口内绘制两条交叉的对角线。javac ResizeMe.javajava ResizeMeColorDemo.java使用自定义颜色和系统预定义颜色绘制线条和形状。javac ColorDemo.javajava ColorDemoXOR.java演示图形 XOR 绘制模式。窗口中有几个色块鼠标移动时会显示一个黑色的十字准星与背景产生异或效果。javac XOR.javajava XORShowFonts.java获取并显示本地图形环境中前5种可用字体族的名称。javac ShowFonts.javajava ShowFontsSampleFonts.java点击鼠标可以在几种预定义字体Dialog, DialogInput, SansSerif, Serif, Monospaced之间循环切换显示。javac SampleFonts.javajava SampleFontsFontInfo.java显示当前图形上下文Graphics所使用的字体的详细信息包括族名、字体名、大小和样式。javac FontInfo.javajava FontInfoMultiLine.java演示如何使用FontMetrics进行精确的多行文本布局和绘制。javac MultiLine.javajava MultiLine2. 关键代码解析与注意事项窗口关闭事件处理所有程序都使用了匿名内部类来处理窗口关闭事件这是早期 AWT 编程的常见模式 。addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { System.exit(0); } });图形绘制核心所有绘制逻辑都在paint(Graphics g)方法中。Graphics对象g提供了各种绘图方法如drawLine,drawRect,fillOval,drawString等 。ResizeMe程序的尺寸逻辑该程序通过鼠标点击事件 (mouseReleased) 来改变窗口尺寸。其逻辑是每次点击宽高增加inc(25像素)当超过max(500像素)时重置为min(200像素) 。int h (d.height inc) max?min :(d.height inc);XOR程序的异或模式setXORMode(Color)方法设置绘图模式为异或。在此模式下绘制的内容会与当前位置已有的像素进行异或操作产生反转效果常用于实现高亮或临时标记如本例的十字准星。绘制完成后需调用setPaintMode()恢复普通模式 。g.drawLine(chsX, chsY-10, chsX, chsY10); g.setPaintMode(); // 恢复普通绘制模式 字体处理ShowFonts使用GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()获取系统可用字体列表 。SampleFonts通过鼠标点击事件循环切换Font对象并调用setFont()和repaint()来更新显示 。FontInfo使用Graphics.getFont()获取当前字体并通过Font类的方法如getName(),getStyle()查询其属性 。MultiLine使用FontMetrics对象通过g.getFontMetrics()获取来计算字符串宽度 (stringWidth) 和字体高度 (getHeight)从而实现精确的文本换行和对齐 。3. 执行结果概览执行这些程序后你将看到一系列独立的 AWT 窗口GraphicsDemo一个固定大小的窗口内部绘制了多种几何图形。ResizeMe一个初始为 200x200 的窗口内部有两条从左上到右下、左下到右上的交叉线。每次在窗口内点击鼠标窗口尺寸会增大达到500像素后会重置为200像素。ColorDemo一个显示多种彩色线条和形状的窗口。XOR窗口中有绿色、蓝色、黑色和红色四个色块。移动鼠标会看到一个黑色的十字准星跟随鼠标移动并与背景色块产生异或闪烁效果。ShowFonts一个窗口显示一行文本内容为系统前5种可用字体族的名称。SampleFonts一个窗口显示当前使用的字体名称。每次在窗口内点击鼠标显示的字体会在五种逻辑字体间循环切换。FontInfo一个窗口显示当前绘制字体的详细信息例如Family: Dialog, Font: Dialog, Size: 12, Style: Plain。MultiLine一个窗口演示了三行文本的输出其中第二行由两次在同一行绘制 (sameLine) 的调用组成。参考来源Java循环结构详解与实战for、while、do-whileJava 17 新特性解析与代码示例java编程源代码_java经典编程300例源代码下载Java编程与游戏开发基础解析构建交互式3D魔方小游戏Java编程与图形技术综合指南

相关新闻

Oracle数据迁移工具EXP/IMP与Data Pump详解

Oracle数据迁移工具EXP/IMP与Data Pump详解

1. Oracle数据库导入导出命令概述作为一名Oracle DBA,数据迁移和备份是最常见的日常工作之一。Oracle提供了两种经典的命令行工具来实现数据的导入导出:EXP/IMP(传统工具)和Data Pump(EXPDP/IMPDP)。这些工…

2026/8/6 21:44:22 阅读更多 →
LFM2.5-2.6B-mxfp8与原版模型深度对比:量化后性能究竟损失多少?

LFM2.5-2.6B-mxfp8与原版模型深度对比:量化后性能究竟损失多少?

LFM2.5-2.6B-mxfp8与原版模型深度对比:量化后性能究竟损失多少? 【免费下载链接】LFM2.5-2.6B-mxfp8 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/LFM2.5-2.6B-mxfp8 LFM2.5-2.6B-mxfp8是基于LiquidAI/LFM2.5-2.6B原版模型转换而…

2026/8/6 21:44:22 阅读更多 →
从0到1部署JoyAI-VL-Interaction-INT4:INT4量化版本地运行教程,低资源也能玩转实时视频理解

从0到1部署JoyAI-VL-Interaction-INT4:INT4量化版本地运行教程,低资源也能玩转实时视频理解

从0到1部署JoyAI-VL-Interaction-INT4:INT4量化版本地运行教程,低资源也能玩转实时视频理解 【免费下载链接】JoyAI-VL-Interaction-INT4 项目地址: https://ai.gitcode.com/jd-opensource/JoyAI-VL-Interaction-INT4 JoyAI-VL-Interaction-INT4…

2026/8/6 21:44:22 阅读更多 →

最新新闻

【8月最新版】10款实测超好用的AI写小说神器(内含工具优缺点对比图)

【8月最新版】10款实测超好用的AI写小说神器(内含工具优缺点对比图)

作为一个全职码字五年的老作者,我太懂大家深夜盯着空白文档的绝望了。 脑子里明明有宏大世界观,可一敲键盘就卡文,尤其是网文黄金前三章,改了十几版还是被编辑拒签。很多新人经常私信问我新手如何开始写小说,或者求一…

2026/8/6 22:40:44 阅读更多 →
OpenClaw AI平台安全风险与防御实战解析

OpenClaw AI平台安全风险与防御实战解析

1. OpenClaw安全风险全景分析OpenClaw作为新兴的AI自动化平台,在提升工作效率的同时也面临着多重安全挑战。根据实际部署经验,我将从技术架构层面剖析主要风险点:1.1 黑客攻击的三大渗透路径API接口漏洞:OpenClaw的RESTful API若未…

2026/8/6 22:40:44 阅读更多 →
拒绝卡文断更!2026最新10款国内主流AI写小说工具深度横评(内含实操经验分享)

拒绝卡文断更!2026最新10款国内主流AI写小说工具深度横评(内含实操经验分享)

作为全职写小说的作者,这几年我每天都在思考如何保持稳定更新。 卡文是工作常态,有时候坐在电脑前一整天也写不出前三章的剧情。现在很多同行都在尝试使用ai写小说,我也测试了不少写小说软件。为了帮大家节省筛选的时间,我花了一…

2026/8/6 22:40:44 阅读更多 →
操作系统笔记-1.4 操作系统的体系结构(上)

操作系统笔记-1.4 操作系统的体系结构(上)

王道操作系统,视频链接:1.4 操作系统的体系结构(上) 操作系统的体系结构 操作系统的体系结构分为:大内核、微内核、分层结构、模块化、外核 考试常考的点为大内核(也称宏内核)、微内核。其他三…

2026/8/6 22:40:44 阅读更多 →
3种方法让AI帮你把任何图片变成可编辑的PSD分层文件

3种方法让AI帮你把任何图片变成可编辑的PSD分层文件

3种方法让AI帮你把任何图片变成可编辑的PSD分层文件 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 你是否曾经遇到过这样的情况:在网上看到一…

2026/8/6 22:40:44 阅读更多 →
企业该把多少工作交给 AI 自动完成?

企业该把多少工作交给 AI 自动完成?

企业交给 AI 自动完成的工作量,应由任务风险、结果可验证性、权限范围和失败后的可逆性共同决定。规则稳定、结果能校验、失败容易撤回的步骤可以自动运行;涉及付款、合同生效、客户权益或生产数据写入的动作,应保留审批或复核节点。自动化比…

2026/8/6 22:39:44 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →