
要执行这些 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编程与图形技术综合指南