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/11/2 9:24:21 阅读更多 →
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/11/3 12:16:38 阅读更多 →
从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/10/25 6:17:06 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/3 1:09:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/3 10:57:27 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/3 11:35:49 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/3 2:27:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/3 10:47:27 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/3 10:57:33 阅读更多 →

日新闻

周新闻

月新闻