2013-10-31 59 views
0

我試圖連接我的java文件,所以我可以創建一個使用主菜單的應用程序,但是無論我做什麼,該錯誤都會持續存在。這裏是我的代碼: Zakat.java找不到符號:方法setCurrent(Kalkulator)

import javax.microedition.midlet.*; 
import javax.microedition.lcdui.*; 

public class Zakat extends MIDlet 
{ 
private Display display; 
public FormLoading FormLoading; 
public Keluar Keluar; 
public MenuUtama MenuUtama; 
public Pengenalan Pengenalan; 
public Kalkulator Kalkulator; 
public About About; 
public Profil Profil; 
//public CanvasAwal canvasAwal; 

    public Zakat() 
{ 
    display = Display.getDisplay(this); 
      FormLoading = new FormLoading(this); 
      Keluar = new Keluar(this); 
      MenuUtama = new MenuUtama(this); 
      Pengenalan = new Pengenalan(this); 
      Kalkulator = new Kalkulator(this); 
      About = new About(this); 
      Profil = new Profil(this); 
      //canvasAwal = new CanvasAwal(this); 


} 

public void startApp() 
{ 
    Display.getDisplay(this).setCurrent(FormLoading); 

} 
public void pauseApp() 
{ 
} 
public void destroyApp(boolean b) 
{ 
} 



} 

MenuUtama.java

import java.io.IOException; 
import javax.microedition.midlet.*; 
import javax.microedition.lcdui.*; 

class MenuUtama extends List implements CommandListener 
{ 
public Zakat app; 
Ticker tc; 
public MenuUtama(Zakat app) 

{ 
    super("Menu Utama",List.IMPLICIT); 
    this.app = app; 
    Image img=null; 
    Image img1=null; 
    Image img2=null; 
    try 
    { 
    img = Image.createImage("/icon1.png"); 
    } 
    catch(Exception e) 
    { 
    } 
    append("Pengenalan Zakat",img); 
    append("Kalkulator",img); 
    append("About",img); 
    append("Profil",img); 
    append("Keluar",img); 


    addCommand(new Command("Pilih",Command.OK,0)); 
    addCommand(new Command("Keluar",Command.EXIT,0)); 
    tc = new Ticker ("Silahkan Pilih"); 
    setTicker(tc); 
    setCommandListener(this); 

} 

public void commandAction (Command c, Displayable d) 
{ 
switch(getSelectedIndex()) 
    { 
     case 0: 
      Display.getDisplay(app).setCurrent(app.Pengenalan); 
      break; 
     case 1: 
      Display.getDisplay(app).setCurrent(app.Kalkulator); 
      break; 
     case 2: 
      Display.getDisplay(app).setCurrent(app.About); 
      break; 
     case 3: 
      Display.getDisplay(app).setCurrent(app.Profil); 
      break; 
     case 4: 
      Display.getDisplay(app).setCurrent(app.Keluar); 
      break; 
    } 

    switch(c.getCommandType()) 
    { 
     case Command.EXIT: 
      Display.getDisplay(app).setCurrent(app.Keluar); 
      break; 
    } 
} 
} 

Kalkulator.java

import javax.microedition.midlet.*; 
import javax.microedition.lcdui.*; 
import java.io.IOException; 

public class Kalkulator extends MIDlet implements CommandListener,ItemCommandListener 
{ 
Zakat app; 
private Command cmdHitung = new Command("Hitung",Command.ITEM,1); 
private Command exitCommand = new Command("Kembali",Command.EXIT,1); 
private Display display; 
private Form form = new Form("kalkulator"); 
private TextField var; 
private TextField hasil; 
public Kalkulator(Zakat app) 
{ 
    var = new TextField("Penghasilan selama 1 Tahun",null,12,TextField.NUMERIC); 
    hasil = new TextField("Zakat yang harus dibayarkan",null, 12 ,TextField.NUMERIC); 
    form.append(var); 
    form.append(hasil); 
    form.setCommandListener(this); 
} 

public void startApp() 
{ 
    if(display==null) 
    { 
     display = Display.getDisplay(this); 
     display.setCurrent(form); 
    } 
} 


public void pauseApp() 
{ 
} 

public void destroyApp(boolean unconditional) 
{ 
} 

public void commandAction (Command c, Displayable d) 
{ 
    switch (c.getCommandType()) 
    { 
     case Command.EXIT: 
     Display.getDisplay(app).setCurrent(app.MenuUtama); 
     break; 
    } 
} 

public void commandAction(Command c, Item item) 
{ 
    if(c.equals(this.cmdHitung)) 
    { 
    int hsl = Integer.parseInt(var.getString())/40; 
    hasil.setString(Integer.toString(hsl)); 
    } 
} 
} 

請幫助,並感謝了。

+0

錯誤指出沒有名爲'setCurrent'的方法接受'Kalkulator'引用。 'setCurrent'方法在哪個類中?並且這個錯誤被拋出的位置在哪裏? –

回答

0

您似乎是在顯示實例上調用setCurrent方法。該方法需要一個參數,它是實現Displayable的某個類的實例。但是KalculatorMidlet實例,並且不實現Displayable。因此編譯錯誤。

我不是J2ME開發者,但它看起來像你應該通過setCurrent a Window對象;例如a FormAlertListTextBox

+0

感謝您的回答。但如果我使用Form作爲可顯示的,我不能進行計算,並且我不知道如何在Form中包裝midlet。對不起,如果我很難理解,我只是學習了Java。 – Lanay