2011-06-28 121 views
1

我已經創建了一個文本字段,其中包含來自用戶的所有字符..但我想禁用該空間,以便用戶不能輸入空格......幫助?J2ME關鍵事件處理

pin = new TextField("Pin#","",4,TextField.PASSWORD); 
+0

我真的堅持這一problem.Plz幫助傢伙 – RNZN

回答

1

如果是PIN碼,那麼也許你應該用TextField.NUMERIC | TextField.PASSWORD替換constraints參數。

+0

我開發客戶端的應用程序想要的PIN碼是任何字符,但不是空格 – RNZN

+0

如果任何其他字符是可接受的,請嘗試使用「TextField.EMAILADDR」或「TextField.URL」,它們不應允許輸入空格。 – funkybro

+0

它的工作原理,但QWERTY鍵被禁用 – RNZN

1

執行ItemStateListener接口。然後在窗體構造函數中調用this.setItemStateListener(this)。 實施itemStateChanged方法,以便如果Item是您感興趣的那個,那麼獲取它的內容並在它包含空格的情況下進行測試。

+0

我覺得你沒有得到我的問題....每當用戶在輸入文本框時按空格鍵,我想顯示警告消息...你可以幫我使用keyevents ... thanx – RNZN

0

在我的情況下,我創建一個MIDlet和一個包含TextField的窗體。它的工作原理。我不知道你爲什麼說我給你的解決方案不適合你!這是一個很簡單的例子,我給(我創造它,測試它!):

package hello; 

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

public class HelloMIDlet extends MIDlet { 

    public Display display; 

    public HelloMIDlet() { 
     display = Display.getDisplay(this); 
    } 

    public void startApp() { 
     Form f = new F(display); 
     display.setCurrent(f); 
    } 

    public void pauseApp() { 
    } 

    public void destroyApp(boolean unconditional) { 
    } 

} 

package hello; 

import javax.microedition.lcdui.Alert; 
import javax.microedition.lcdui.AlertType; 
import javax.microedition.lcdui.Display; 
import javax.microedition.lcdui.Form; 
import javax.microedition.lcdui.Item; 
import javax.microedition.lcdui.ItemStateListener; 
import javax.microedition.lcdui.TextField; 

public class F extends Form implements ItemStateListener { 
    private TextField pin = new TextField("PIN :","",4,TextField.PASSWORD); 
    private Alert alert; 
    private Display disp; 
    public F(Display d) 
    { 
     super(""); 
     disp = d; 
     this.setItemStateListener(this); 
     this.append(pin); 
    } 
    public void itemStateChanged(Item item) { 
     if (item == pin) 
     { 
      for (int i=0; i<pin.getString().length(); i++) 
      { 
       if (String.valueOf(pin.getString().charAt(i)).equals(new String(" "))) 
        displayAlert(); 
      } 
     } 
    } 
    private void displayAlert() 
    { 
     alert = new Alert("Info","No space please !",null, AlertType.ERROR); 
     disp.setCurrent(alert, this); 
    } 
} 
+0

Java SDK不採取this.setItemStateListener(this);行顯示錯誤... thanx幫助新人 – RNZN