2011-03-01 140 views
4

嗨,我覺得這很愚蠢,因爲我應該可以做到,但我做不到!我也檢查了網絡和我的書,對於這樣一個簡單的事情,沒有任何東西(或者我可以看到它)。驗證輸入對話框

我想做的事現在是一個JOptionPane.showInputDialog(用戶空,...,檢查

  1. 不是空白
  2. 它不包含數字或類似/> <特殊字符。!「£$%^ * &()

如果失敗了這些測試來重新顯示對話框,以便他們必須這樣做,eurgh這是這樣一個簡單的事情,但我做不到解決它:(

請對我的愚蠢做點小事吧!感謝任何幫助提前它是appericiated!

回答

2

有一個方法顯示輸入對話框,驗證輸入並在輸入正確時返回輸入,否則它會自行調用自身重複該過程,直到輸入有效。事情是這樣的:

private String showInputDialog() 
{ 
    String inputValue = JOptionPane.showInputDialog("Please input something"); 

    if(inputValue == null || inputValue.isEmpty() || !inputValue.matches("[A-Za-z]*")) 
    { 
     inputValue = showInputDialog(); 
    } 

    return inputValue; 
} 

!inputValue.matches("[A-Za-z]*")將觸發比任何數量的到Z,大寫或小寫字母以外的任何輸入。

然後從您的代碼中調用它,然後根據返回值執行任何操作。

String input = showInputDialog(); 
System.out.println(input); 
+0

謝謝你完美! :) – James 2011-03-05 18:22:07

0

就像你描述的那樣。顯示對話框並檢查結果。如果無效,請再次顯示對話框。

可能希望使用do while循環或類似的東西總是循環一次。你也會想用一個正則表達式來驗證沒有特殊字符存在。

+0

是啊,我想...... \t \t字符串examinerName = 「」; \t \t int a = 0; \t \t而(A = 1!){ \t \t \t字符串名稱= JOptionPane.showInputDialog(NULL, 「你叫什麼名字?」, 「輸入您的姓名」,JOptionPane.QUESTION_MESSAGE); \t \t \t如果(名稱== 「」){ \t \t \t \t名= JOptionPane.showInputDialog(NULL, 「你叫什麼名字」, 「輸入您的姓名」,JOptionPane.QUESTION_MESSAGE?); \t \t \t \t a = 0; \t \t \t}否則{ \t \t \t \t examinerName =名; \t \t \t \t a = 1; \t \t \t} \t \t} – James 2011-03-01 16:56:47

+1

@詹姆斯,而不是在一個評論張貼代碼,編輯您的問題包含代碼的您的具體問題。 – jzd 2011-03-01 16:58:04