2012-09-29 108 views
2

檢測項的類型。在我的計劃,我有一個JTextField讀取用戶輸入。用戶應該輸入一個數字,然後點擊一個JButton來確認輸入,但是我想要知道如果用戶沒有輸入數字,會彈出一個消息,告訴用戶這是一個不正確的輸入。如何實現一些東西來檢測用戶是否在點擊JButton時輸入數字?如果我需要提供更多代碼,請告訴我。讀取用戶輸入和Java中

JButton okay = new JButton("OK"); 
JTextField dataEntry = new JTextfield(); 

okay.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e){  
     firstEntry = Float.parseFloat(dataEntry.getText()); 
     //want to see if it's a float, if true, run the following code 
     confirm = true; 
     changeText(); 
     dataEntry.setText(""); 
    } 
}); 

回答

0

parseFloat拋出一個NumberFormatException如果通過String不包含可解析float。您可以捕獲該異常來檢測用戶是否已進入float

try { 
    firstEntry = Float.parseFloat(dataEntry.getText()); 
} catch (NumberFormatException e) { 
    // input is not a float 
} 

另一種選擇是使用Scanner如果你不希望處理異常:

Scanner scanner = new Scanner(dataEntry.getText()); 
if (scanner.hasNextFloat()) { 
    firstEntry = scanner.nextFloat(); 
} else { 
    // input is not a float 
} 
+0

謝謝你的幫助! – 00101100

0

我會避免使用異常的catch機制來檢查值是否是一個數字,因爲這在java中是非常昂貴的過程。

如果使用FormattedTextFields這將是更好:formattedtextfield

這需要一些代碼,但它是一個非常優雅的解決方案。您也可以使用這個概念編寫自己的格式。