2013-02-02 42 views
2

我試圖製作一個簡單的「hello world」應用程序,點擊按鈕後,它會打印一個字符串「hello world」。如何在表單上添加按鈕?如何在J2ME應用程序中創建表單上的按鈕?

我需要創建一個按鈕,當我點擊它時可以產生一個字符串。如何在j2me中不使用畫布添加按鈕?

回答

3

有這個一個API,但你最好三思而後行,你是否真的需要它。

API在Appearance modes section for lcdui Item objects

desctibed的StringItem的和的ImageItem類具有可以在它們的構造來設置的外觀模式屬性。該屬性可以具有PLAIN,HYPERLINK或BUTTON的其中一個值。 PLAIN的外觀模式通常用於文本或圖形材料的非交互式顯示。外觀模式值對項目的交互性沒有任何副作用。爲了進行交互操作,該項目必須有一個或多個命令(最好使用指定的默認命令),並且它必須具有接收命令調用通知的CommandListener ...

A 按鈕模式下的StringItem或ImageItem可用於創建基於按鈕的用戶界面 ...

注意,這部分還介紹了使用按鈕的外觀時,可能會出現問題的情況下:

...這很容易導致不方便的應用程序 使用。例如,在基於遍歷的系統中,用戶必須導航到按鈕才能調用其上的任何命令。如果按鈕分佈在一個長表單中,用戶可能需要執行大量的導航才能發現所有可用的命令。此外,從窗體另一端的按鈕調用命令可能非常麻煩。基於遍歷的系統通常提供從任何地方(例如從菜單)調用命令的手段,而不需要遍歷特定項目。如果將命令直接添加到表單中,用戶通常會更加適合和方便用戶,而不是將按鈕添加到按鈕中。只有在用戶直接與用戶交互項目的字符串或圖像內容對用戶理解可從該項目調用的命令而言至關重要的情況下才應使用按鈕。

+0

謝謝,這條信息對我來說非常有用。 – NSharma

+1

大拇指(和表決)。謝謝!每天學些新東西。 –

4

從我在一本舊的J2ME書籍中找到的類圖中看到,J2ME沒有按鈕,它在http://www.stardeveloper.com/articles/display.html?article=2002121101&page=2處在線。好的,在老手機上不需要他們。

只需創建一個「hello」命令並將其添加到菜單或表單。系統會將其放在您設備上的任何按鈕上。對於觸摸屏設備,可能會變成可點擊的東西。

下面的代碼

import javax.microedition.lcdui.Command; 
import javax.microedition.lcdui.CommandListener; 
import javax.microedition.lcdui.Display; 
import javax.microedition.lcdui.Displayable; 
import javax.microedition.lcdui.Form; 
import javax.microedition.lcdui.TextBox; 
import javax.microedition.lcdui.TextField; 
import javax.microedition.midlet.MIDlet; 
import javax.microedition.midlet.MIDletStateChangeException; 


public class HelloWorld extends MIDlet implements CommandListener { 

    private static final String HELLO_WORLD = "Hello, World!!"; 

    private Form form= new Form (""); 

    private Command exit= new Command("Exit", Command.EXIT, 0x01); 
    private Command ok= new Command("OK", Command.OK, 0x01); 
    private Command hello= new Command("HELLO", Command.SCREEN, 0x01); 

    private TextBox textBox= new TextBox("Hello World", HELLO_WORLD, HELLO_WORLD.length(), TextField.UNEDITABLE); 

    public HelloWorld() { 
     this.form.addCommand(exit); 
     this.form.addCommand(hello); 
     this.form.setCommandListener(this); 
     this.textBox.addCommand(ok); 
     this.textBox.addCommand(exit); 
     this.textBox.setCommandListener(this); 
    } 

    protected void destroyApp(boolean unconditional) 
      throws MIDletStateChangeException { } 

    protected void pauseApp() { } 

    protected void startApp() throws MIDletStateChangeException { 
     Display.getDisplay(this).setCurrent(this.form); 
    } 

    public void commandAction(Command c, Displayable d) { 
     if (c == this.exit) { 
      this.notifyDestroyed(); 
     } 
     if(c == this.ok) { 
      Display.getDisplay(this).setCurrent(this.form);   
     } 
     if(c == this.hello) { 
      Display.getDisplay(this).setCurrent(this.textBox);   
     } 
    } 

} 
+0

非常感謝!我很難弄清楚如何在屏幕上添加按鈕,最後我知道j2me應用程序不支持按鈕。謝謝。 – NSharma

相關問題