2011-11-16 35 views
0

我正在J2ME中開發移動應用程序。現在我將它轉換爲J2ME Polish。在我的應用程序中,我使用手機拍攝了一張照片。它在J2ME中工作正常。但是在J2ME波蘭語中它不起作用。我無法解決它。無法使用J2ME Polish中的相機捕捉圖片?

代碼段下面給出

import javax.microedition.lcdui.Canvas; 
import javax.microedition.media.control.VideoControl; 
//... 

public class VideoCanvas extends Canvas { 
    // private VideoMIDlet midlet; 
    // Form frm 

Form frm=null; 

    public VideoCanvas(VideoControl videoControl) {  

     int width = getWidth(); 
     int height = getHeight(); 
     // this.midlet = midlet; 

     //videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, this); 

     //Canvas canvas = StyleSheet.currentScreen; 
     //canvas = MasterCanvas.instance; 



     videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,this); 

     try { 
      videoControl.setDisplayLocation(2, 2); 
      videoControl.setDisplaySize(width - 4, height - 4); 
     } catch (MediaException me) {} 
     videoControl.setVisible(true); 



    } 

    public VideoCanvas(VideoControl videoControl,Form ff) {  

    frm=ff; 
     int width = getWidth(); 
     int height = getHeight(); 
     // this.midlet = midlet; 

     Ticker ticker=new Ticker("B4 video controll init"); 
     frm.setTicker(ticker); 

     //Canvas canvas = StyleSheet.currentScreen;   




     videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,this); 

     ticker=new Ticker("after video controll init"); 
     frm.setTicker(ticker); 

     try { 
      videoControl.setDisplayLocation(2, 2); 
      videoControl.setDisplaySize(width - 4, height - 4); 
     } catch (MediaException me) {} 
     videoControl.setVisible(true); 



     ticker=new Ticker("Device not supported"); 
     frm.setTicker(ticker); 


    } 

    public void paint(Graphics g) { 
     int width = getWidth(); 
     int height = getHeight(); 

     g.setColor(0x00ff00); 
     g.drawRect(0, 0, width - 1, height - 1); 
     g.drawRect(1, 1, width - 3, height - 3); 
    } 

} 

在正常J2ME上面的代碼正常工作。但在j2me波蘭videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO,this)這裏是指VideoCanvas (which extends from javax.microedition.lcdui.Canvas)。但它會拋出一個「IllegalArgumentException - 容器應該是畫布」。如何解決這個問題?

+1

請提供在_VideoCanvas.java_中使用的導入語句 - 如果沒有這些語句,人們永遠不會知道extends子句中使用的Canvas是指javax.microedition.lcdui.Canvas還是來自另一個剛剛發生的包的類具有相同的名稱 – gnat

+0

Hi.Im只發布我的代碼片段的一部分。我已經導入下列「javax.microedition.lcdui.Canvas,javax.microedition.media.control.VideoControl」。但我忘了在我的帖子中添加。所以請原諒我的錯誤。歡迎您提供寶貴的意見。 –

+0

@ SIVAKUMAR.J我需要打開相機捕捉圖像使用J2ME波蘭語可以建議我如何發揚光大。 –

回答

3

J2ME波蘭語的J2ME &中的Display類不同。我相信你只是因爲Display類而得到這個錯誤。

將您的顯示類更改爲波蘭的圖書館&您的問題將得到解決。

+0

我在我的問題中增加了一些額外的意見。所以請訪問它給我你寶貴的idea.It將有助於我。 –

+0

謝謝@SIVAKUMAR.J – Lucifer