2013-02-23 92 views
0

我有一个图像的帧和缓冲区值。我无法在框架中显示图像。我使用的代码如下:在awt中显示图像

byte [] payload = new byte[payload_length]; 
rtp_packet.getpayload(payload); 
Toolkit toolkit = Toolkit.getDefaultToolkit(); 
Image image = toolkit.createImage(payload, 0, payload_length); 
icon = new ImageIcon(image); 
iconLabel.setIcon(icon); 

我还试图使用的代码直接添加它到框架:

f.setIconImage(image); 

现在如何显示图像?为什么它不工作?

+0

这是使用Swing或AWT组件。 'ImageIcon'是Swing,但你已经添加了AWT标签。 – 2013-02-23 05:15:20

+0

我试过在秋千也...但我想它nwt ...我也尝试添加一个画布和显示吨... – user123456789 2013-02-23 05:26:06

+0

*“但我想它nwt”*为什么? Swing是一个完全启用的GUI工具包。 – 2013-02-23 05:27:31

回答

-1

您想使用图形对象。您的AWT框架应该已经有一个和你打电话通过您的图形对象...

  BufferedImage img = javaImage; // You replace this with your image 
      Graphics g = this.getGraphics(); // this is what you need to call 
      g.drawImage(img, 0, 0, null); // you then call draw image 

你的情况,你根本

  g.drawImage(image, 0, 0, null); // you can look up the parameters 

这应该为你做它。

+2

-1可怕的答案。 1)不要调用'getGraphics()'。这是一个暂时的对象,可能会立即被覆盖。请参阅教程中的[执行自定义绘画](http://docs.oracle.com/javase/tutorial/uiswing/painting/)以获取正确的方法。 2)'Frame'实现'ImageObserver',所以'g.drawImage(image,0,0,null);'应该是'g.drawImage(image,0,0,this);'。 – 2013-02-23 05:31:05

+0

你能清楚吗?我应该使用g.drawImage(iamge,0,0,this);或不? – user123456789 2013-02-23 05:37:15

+0

图像仍然没有消失...这是我使用的代码... Image image = toolkit.createImage(payload,0,payload_length); \t BufferedImage img =(BufferedImage)image; 图形g = img.getGraphics(); g.drawImage(img,0,0,mainPanel); – user123456789 2013-02-23 08:47:48