2013-03-06 108 views
3

如何使用图像填充以下矩形?任何人都可以帮助我吗?用Java中的图像填充矩形

public void paintComponent(Graphics g) { 
     setOpaque(false); 
     //Paint a filled rectangle at user's chosen point. 
     if (point != null) { 
      g.drawRect(0, 0, 
         rectWidth - 1, rectHeight - 1); 
      g.setColor(Color.yellow); 
      g.fillRect(1, 1, 
         rectWidth - 2, rectHeight - 2); 
      }} 

我想这个代码,但我不能找到一种方法,使其工作:

File imageFile = new File("duck.jpg"); 
BufferedImage img; 
Graphics2D graph = img.createGraphics(); 
graph.setColor(Color.BLACK); 
graph.fill(new Rectangle(1, 2, rectWidth, rectHeight)); 
graph.dispose(); 
ImageIO.write(img, "jpg", new File("duck.jpg")); 
+3

你怎么创建变量'imageFile'呢?另外,你知道'dispose'是什么意思吗?你是否读过同名方法的评论? – 2013-03-06 13:00:32

+1

你是否在这一行上遇到'NullPointerException' ..'Graphics2D graph = img.createGraphics();' – christopher 2013-03-06 13:01:51

回答

2

您可以选择将图像加载到Image对象(如BufferedImage的),然后调用

graphics.drawImage()

对该图像给出坐标和其他信息。

查找范围the tutorial更多信息

+3

我试过了你的想法,但是它会引发一个错误:'Image img = Toolkit.getDefaultToolkit() .getImage( “duck.jpg”); int w = img.getWidth(null); int h = img.getHeight(null); BufferedImage bi = new BufferedImage(w,h,BufferedImage.TYPE_INT_ARGB); //图形g = bi.getGraphics(); g.drawImage(img,0,0,null);' – 2013-03-06 13:17:55

+3

这不是错误,它是引发它的代码行。发布错误。 – Dariusz 2013-03-06 13:25:22

+3

线程中的异常“AWT-EventQueue-0”java.lang.IllegalArgumentException:宽度(-1)和高度(-1)不能小于等于其他许多其他值 – 2013-03-06 13:29:50