2012-01-11 1 views
0

LWUIT, Midlet 모바일 응용 프로그램을 사용하여 하나의 프로젝트를 개발 중입니다. 숫자 키를 누르면 대화 상자가 열립니다. #, 0, 키를 누르면 * 대화 상자가 닫혀 야합니다.
대화 상자를 닫으려면 Dialog.dispose() 메서드를 사용하고 있습니다. 하지만 작동하지 않습니다. 아래는 나의 행동 강령이다. 아무도 내 코드에서 문제가 무엇인지 말해 줄 수 있습니까?처분 방법 대화 상자 LWUIT 구성 요소

public class javaForm extends Component implements ActionListener 
{ 

Dialog d=new Dialog(); 


public void keyPressed(int key){ 

    System.out.println("Key pressed :"+key); 

      switch(key) 
      { 


       case 48: 
        d.show(130,20,30,30,true); 
        break; 
       case 49: 
      d.show(130,20,30,30,true); 
        break; 
       case 50: 
      d.show(130,20,30,30,true); 
        break; 
       case 51: 
      d.show(130,20,30,30,true); 
        break; 
       case 52: 
      d.show(130,20,30,30,true); 
        break; 
       case 53: 
      d.show(130,20,30,30,true); 
        break; 
       case 54: 
      d.show(130,20,30,30,true); 
        break; 
       case 55: 
      d.show(130,20,30,30,true); 
        break; 
       case 57: 
        d.show(130,20,30,30,true); 
        break; 
       case 56: 
        d.show(130,20,30,30,true); 
         break; 
       case 42: 
      d.dispose(); 
         break; 
       case 35: 
         d.dispose(); 
         break; 
       default: 
         d.dispose(); 
         break; 
      } 

} 

public void actionPerformed(ActionEvent ae) 

{ 

throw new UnsupportedOperationException("Not supported yet."); 

} 

} 

사실 javaForm는 LWUIT을 사용하고 javaForm1입니다 미들 릿의 안쪽이 javaForm를 호출하고 개발 한 자바 프로그램입니다. 나는 모든 필요한 패키지를 포함했다.

+2

새 질문을하기 전에 다른 질문을 받아 들여야합니다. – frayab

+0

해당 키 코드를 확인 했습니까? [이미 당신에게 말했습니다] (http://stackoverflow.com/questions/8799366/how-to-resize-dialog-box-in-lwuit) 케이스 내부에서 println을 사용하여 어떤 일이 있었는지 확인하십시오. – bharath

+0

예 @ 바랏. 나는 시도했지만 Works.i는 키 2를 누르고 50을 표시했다. 다시 2를 누르면 아무 것도 인쇄되지 않는다. – Shankar

답변

2

Form.addGamekeyListener()을 사용하지 않으시겠습니까?

ae.getKeyEvent으로 행해져 Yout Form합니다 (FormActionListener를 확장) 나중에 actionPerformed(ActionEvent ae) 캡처 키에 gameKeyListener와는 Dialog을 닫습니다 넣습니다.

게임 키를 Canvas으로 매핑하십시오. 예 : Canvas.FIRE.

+0

@ jmunoz .. GameKeyListener 아래에있는 키는 무엇입니까? 원하는 대화 상자를 표시하기 위해 모든 모바일 키를 사용합니다. – Shankar

+1

jmunoz가 설명한 것처럼 게임 키 수신기 대신 addKeyListener를 사용하십시오. 대화 상자의 하위 클래스를 만들고 keyReleased 콜백을 재정의 할 수도 있습니다. –

+0

@ShaiAlmog는 맞습니다 – Mun0n