代码一串&&执行流程
package cn.sisy.awt;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.image.BufferedImage;
public class DrawByMouse {
//定义画图区域的大小
private final int width = 500;
private final int height = 500;
//设置起始坐标的位置,这个位置标示鼠标尚未进入myCanvas
private int preX = -1;
private int preY = -1;
//定义一个BufferedImage对象,并获取image对象的Graphics
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
private Frame f = new Frame("手绘测试");
DrawCanvas myCanvas = new DrawCanvas();
//设置画笔默认颜色
private Color foreColor = new Color(255,0,0);
public void init(){
g.fillRect(0, 0, width, height);
myCanvas.setPreferredSize(new Dimension(width,height));
//监听鼠标移动动作
myCanvas.addMouseMotionListener(new MouseMotionAdapter() {
// 实现按下鼠标键并拖动的事件处理器
public void mouseDragged(MouseEvent e){
if(preX>0 && preY>0){
g.setColor(foreColor);
g.drawLine(preX, preY, e.getX(), e.getY());
}
// 将当前鼠标事件点的X、Y座标保存起来
preX = e.getX();
preY = e.getY();
// 重绘drawArea对象
myCanvas.repaint();
}
});
//实现鼠标松开的事件处理器
myCanvas.addMouseListener(new MouseAdapter() {
//实现鼠标松开事件处理
public void mouseReleased(MouseEvent e) {
preX = -1;
preY = -1;
}
});
f.add(myCanvas);
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
new DrawByMouse().init();
}
class DrawCanvas extends Canvas{
public void paint(Graphics g){
g.drawImage(image,0,0,null);
}
}
}
- 大小: 19.3 KB
- 大小: 22.4 KB
分享到:
相关推荐
首先,`java.awt.Image`是一个抽象类,它提供了一种通用的接口来表示图像数据。`Image`对象可以从网络、文件、内存或其他来源获取,但它的方法通常是非同步的,意味着它们可能不会立即返回结果,而是在图像数据可用...
2. **BufferedImage**: `java.awt.image`包下的类,提供了一个通用的位图结构,用于处理像素数据。 3. **Graphics2D**: 提供了高级的二维图形和图像渲染功能,是`Graphics`接口的子接口。 4. **ConvolveOp**: 使用...
`java.awt.image` 包提供了处理图像的类,如 `BufferedImage` 和 `ImageFilter`,支持图像的加载、显示和编辑。 `java.awt.image.renderable` 包用于生成与呈现无关的图像,适用于生成可缩放或适应不同输出设备的...
此外,`java.awt.image.BufferedImage`和`java.awt.Graphics2D`则支持更高级的图像处理,如图像缩放、旋转和透明效果。 在Java中,绘图不仅可以用于创建静态图形,还可以结合动画和事件处理,实现交互式的图表。...
在Java中,可以使用`java.awt.Robot`类来捕获屏幕快照,`java.awt.image.BufferedImage`用于存储图像数据,`javax.imageio.ImageIO`类则可以用来进行图像的编码和解码。此外,可能还需要使用多线程来处理图像的抓取...
- `java.awt.image`包:包含了许多处理图像的类,如`BufferedImage`用于内存中的图像操作,`ImageIO`用于读写图像文件。 - 图像操作主要包括创建、加载和显示。例如,`ImageIO.read()`用于从文件加载图像,`...
在控制台烟花程序中,虽然我们不会直接加载图片,但`Image`类的概念可以被借鉴来抽象烟花爆炸的过程。例如,我们可以用一个类表示烟花,该类包含烟花的颜色、位置、大小等属性,以及模拟烟花绽放的方法。 3. **类...
`java.awt.Image`类是图像对象的抽象基类,而`javax.imageio.ImageIO`则用于读取、写入和处理图像。下面,我们将详细讲解这两个关键步骤:图片缩放和图片截剪。 **图片缩放** 图片缩放通常涉及到调整图像的宽度和...
使用java.awt.image包来处理图像信息,可以使用BufferedImage类来处理图像信息。使用Toolkit类来获得图像的信息。 使用java.awt.print包来处理打印信息,可以使用PrinterJob类来获得打印机的信息,可以使用...
第1章 Java概述 1 1.1 Java语言的发展简史 2 1.2 Java的竞争对手及各自优势 4 ...11.8.1 Image抽象类和BufferedImage实现类 425 11.8.2 使用ImageIO输入/输出位图 427 11.9 剪贴板 432 11.9.1 数据传递的类...
在Java中,我们可以使用`java.awt.image.BufferedImage`类来加载和显示图像,而音频则可以通过`javax.sound.sampled`包进行播放。开发者通常会将这些素材组织成类,方便在游戏中调用。 总的来说,这个飞行射击类...
它是一个抽象类,提供了加载、显示和操作图像的方法。例如,可以使用 `Toolkit.getDefaultToolkit().getImage()` 来加载图像文件。 3. **缩放方法**: - 缩小或放大图像通常通过创建图像的新实例并设置新的尺寸来...
在Java编程语言中,画曲线和图形是一项基本任务,它涉及到图形用户界面(GUI)的开发,特别是使用Java的抽象窗口工具包(AWT)和 Swing 框架。Java 提供了丰富的类库来创建、操作和显示图形,如 `java.awt.Graphics`...
在Java中,可以使用Java Advanced Imaging (JAI)库或者BufferedImage类的方法来实现图像滤镜效果,如灰度化、锐化、模糊等。在图片浏览器中,可能提供了这些功能让用户对显示的图片进行简单的编辑。 5. **放大和...
4. **图像处理**:赛车和背景图片的加载与显示,可能使用了java.awt.image包中的BufferedImage类。开发者需要了解如何加载外部图像资源,并在画布上绘制。 5. **音频播放**:游戏中的背景音乐播放可能借助了Java ...
- **`Image`**:这是一个抽象类,代表了一个图像,通常由子类如`BufferedImage`实现。 - **`BufferedImage`**:这是`Image`的一个具体实现,它包含了一个可直接访问像素数组的内存缓冲区,使得图像处理更为高效。 - ...
8. **GraphicsDevice** 和 **GraphicsConfiguration**:这两个类与系统硬件相关,用于获取和管理显示设备的信息,以及为特定设备选择合适的图形配置。 网页版的API文档通常具有搜索功能,方便用户快速查找所需的...
BufferedImage 类是 Java 图形处理中的一个重要类,它是 Image 抽象类的实现,主要用于在内存中创建一个带有缓冲区的图像。这个缓冲区使得我们可以高效地对图像进行各种操作,如绘制、缩放、旋转等,而无需频繁地与...
对于图像处理,可能需要用到java.awt.image包中的BufferedImage类,它可以存储和操作像素数据。常见的图像处理操作如灰度转换、旋转、缩放、色彩变换等,都可以通过操作BufferedImage的像素数组来实现。 例如,灰度...
`java.awt.Image` 是Java标准库中表示图像的基本抽象类。`Image`对象可以从文件、URL、流或内存中的位图数据创建。在`ImageProcess`类中,`img`变量就是用来存储从输入流中读取的图像。 2. **ImageIO**: `javax....