2010-03-22 29 views
1

我使用的BigDecimal表示在Java SE應用程序產品的價格。如何在Swing GUI中使用BigDecimal?

什麼Swing組件(S)我應該以允許用戶輸入數字,只有小數點後兩位使用,它必將爲BigDecimal變量/對象的屬性。 (檢查用戶類型)?

我一直在玩的JTextField,JFormattedTextField上,NumberFormatter類,MaskFormatter類的,但我不能工作了。

有沒有做這些組件的任意組合和配置?或者我應該擴展MaskFormatter,JTextField,...?

回答

1

我不太知道你正在嘗試做的,但有一個BigDecimal構造這需要字符串作爲參數(類似於例如Double.parseDouble(String s)):

try 
{ 
    BigDecimal decimal = new BigDecimal(yourJTextField.getText()); 
} 
catch (NumberFormatException nfe) 
{ /* error handling */} 

有關更多信息,請參閱BigDecimal的JavaDoc。

編輯:如果檢查/驗證用戶輸入到文本框,手動檢查或使用驗證器(見Google results for "JTextField Validator"

+0

的問題是,我想一個組件,只允許數字,只允許2位小數對此:如果用戶輸入一個字母,則不顯示,如果用戶輸入第三個小數位,則不顯示。最重要的是,我想將該組件綁定到BigDecimal變量。 – mmutilva 2010-03-22 20:45:16

+0

看一看的InputVerifier文檔然後:http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/InputVerifier.html – Tedil 2010-03-22 20:54:27

+0

的InputVerifier作用的重點發生變化時。我想在用戶輸入組件時控制輸入。 – mmutilva 2010-03-22 21:28:56