JAVA Graphics类中drawImage方法怎么用

drawImage(Imageimg,intdx1,intdy1,intdx2,intdy2,intsx1,intsy1,intsx2,intsy2,ImageObser... drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)

最后一个参数是填什么东西,不懂,API文档写的不清楚
展开
 我来答
刺友互
高粉答主

2019-06-20 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:72.8万
展开全部

1、先在eclipse中创建一个java工程文件,命名为UseFunction。

2、然后在src下创建demo包,在demo下创建MyClass类。

3、接着在MyClass类中创建一个函数。函数内容很简单,只是输出一条语句。

4、接着就是要在main函数中调用上一步创建的函数。

5、编辑好MyClass.java文件后,通过java应用程序的方式运行MyClass.java。

6、运行后,可以在控制台中看到输出了一条语句,说明成功调用了函数。

一数一道
推荐于2017-09-08 · TA获得超过1751个赞
知道小有建树答主
回答量:369
采纳率:75%
帮助的人:217万
展开全部

  Graphics有六个drawImage方法,我们用的最多的是  public abstract boolean drawImage(Image img, int x, int y,int width, int height,ImageObserver observer);

  img是要加载的图像,x,y是指定绘制图像矩形左上角的位置,width是指定绘制图像矩形的宽,width是指定绘制图像矩形的高,observer是要绘制图像的容器。

  因为Graphics是一个抽象类,所以我们一般是重写其它容器的paint方法,例如JPanel或者JFrame等。下面是一个具体的例子:

package konw.win;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
class MyGraphics extends JPanel
{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public void paint(Graphics g)
    {
        Toolkit tool = this.getToolkit();
        Image image = tool.getImage("image.jpg");
        g.drawImage(image, 10, 10, image.getWidth(this),image.getHeight(this), this);
    }
}
public class WinDrawImageTest
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
        frame.add(new MyGraphics());
        
        frame.setVisible(true);
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
隔壁老王叨叨叨
推荐于2017-10-04 · TA获得超过7699个赞
知道大有可为答主
回答量:2710
采纳率:0%
帮助的人:2514万
展开全部
最后一个添null就可以了,那是用来检测图片改变的“图片观察者”,实际中基本用不到。因为这个观察者类在java设计中有严重缺陷,会导致图片绘制不及时,所以图片更新的工作往往都是由开发者自己来做。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-19
展开全部
drawImage你知道是画图了。准确地说,这个是异步画图(就是说,不同步),执行了之后,画图了,但是以后可能会有新的部分需要画(动画图的第二帧或者第一次只画一半),那么,当新的部分被画的时候,很可能是在另一个线程里画的,不是你调用drawImage的这个线程。
那么,你很可能会想得到“有新部分被画了”这个事件。ImageObserver 就是这类事件的一种接收器。只要是实现了ImageObserver这个接口的Object传进去就行了。具体的ImageObserver的imageUpdate方法,你可以直接刷新它的容器(因为容器内的图刷新了嘛,所以需要刷新容器的样子吧)。如果你肯定图是稳定的(好像BufferedImage就是)能一次画完的,可以直接传入null,表示不给它ImageObserver,不监听“有新部分被画了”这个事件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫青川
2011-07-19 · TA获得超过155个赞
知道答主
回答量:63
采纳率:0%
帮助的人:91.7万
展开全部
一般都填this
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式