2013-02-02 11 views

답변

3

입니다.

API는 StringItem Appearance modes section for lcdui Item objects

에 desctibed하고 ImageItem 클래스는 생성자에서 설정 될 수있는 모양 모드 속성을 가지고있다. 이 속성은 PLAIN, HYPERLINK 또는 BUTTON 값 중 하나를 가질 수 있습니다. PLAIN의 외양 모드는 일반적으로 텍스트 또는 그래픽 자료의 비 대화식 표시에 사용됩니다. 모양 모드 값은 항목의 상호 작용에 부작용이 없습니다. 대화식으로 작동하려면 항목에 하나 이상의 명령 (기본 명령이 할당되어있는 것이 좋음)이 있어야하며 명령 호출 알림을 수신하는 CommandListener가 있어야합니다. ...

StringItem 또는 ImageItem이 BUTTON 모드입니다. 이 부분도 문제가 될 수있는 버튼 모양을 사용하는 경우에 대해 설명하는 것이 ...

참고 버튼 기반의 사용자 인터페이스를 만드는 데 사용할 수 있습니다 :

을 ...이 쉽게 발생할 수 있습니다 불편을 겪고있는 응용 프로그램 사용. 예를 들어 탐색 기반 시스템에서 사용자는 명령을 호출하기 전에 단추로 이동해야합니다. 버튼이 긴 Form에 퍼져있는 경우 사용자는 사용 가능한 모든 명령을 검색하기 위해 상당한 양의 탐색을 수행해야 할 수 있습니다. 또한 Form의 다른 쪽 끝에있는 버튼에서 명령을 호출하는 것은 상당히 번거로울 수 있습니다. 순회 기반 시스템은 종종 특정 항목을 탐색 할 필요없이 어디서나 (예 : 메뉴에서) 명령을 호출하는 수단을 제공합니다. 단추에 명령을 추가하고 해당 단추를 양식에 배치하는 대신 사용자가 명령을 직접 양식에 추가하는 것이 더 적절하고 편리합니다. 버튼은 항목의 문자열이나 이미지 내용과 직접적인 상호 작용이 해당 항목에서 호출 할 수있는 명령에 대한 사용자의 이해에 반드시 필요한 경우에만 사용해야합니다.

+0

감사합니다.이 정보는 나에게 매우 유용합니다. – NSharma

+1

엄지 손가락 (그리고 투표)까지. 감사! 매일 새로운 것을 배우십시오. –

4

이전의 J2ME 책에서 발견 한 클래스 다이어그램에서 온라인은 http://www.stardeveloper.com/articles/display.html?article=2002121101&page=2이며 J2ME에서는 버튼을 사용하지 않는 것으로 보입니다. 오래 된 휴대 전화에서는 필요가 없습니다.

"hello"명령을 만들어 메뉴 또는 양식에 추가하기 만하면됩니다. 그러면 시스템에서 장치의 어떤 버튼이든 사용할 수 있습니다. 터치 스크린 장치의 경우 클릭 할 수있는 것으로 바뀔 수 있습니다.

여기가이에 대한 API이지만, 당신은 더 나은 두 번 당신이 정말 필요 여부를 생각하는 코드

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