2009-08-24 63 views

回答

15

JFormattedTextField由於可用性差而很邪惡。例如,如果文本字段只能接受整數值,則JFormattedTextField將允許任何舊垃圾,然後在焦點丟失時發出抱怨。更糟糕的是,當焦點丟失時,它有一系列可配置的行爲(一個明確的標誌,它們都不是正確的選擇)。

它也有「k3wl」格式化程序選擇。它似乎與文檔的交互性差(它試圖安裝DocumentFilter,但這不是Document界面的一部分)。

9

我會承認的JFormattedTextField是不是最容易使用的類,並且是它確實有問題,但最喜歡的成分確實在一些事情合理的工作和別人做得不好。

,它實際是讓你當你使用的MaskFormatter數據輸入到編輯整數值。所以對於簡單的任務它可以是有效的。

編輯數據是一項複雜的任務。有時您需要編輯輸入的數據(在檢查整數值的情況下)。有時您需要在輸入數據後進行編輯(在驗證日期的情況下)。那麼當然你需要決定如何處理無效數據。

執行非平凡任務時,可能會有一定量的參數配置。他們可能並不總是按照您希望的方式工作,或者按照您期望的方式工作,因此您需要試驗以確定何時可以/應該使用此組件。

+3

JFormattedTextField的主要問題是它針對罕見的用例進行了優化,而不是常見的用例,而對於常見任務的組件卻缺失。 AWT已經夠糟糕了,但Swing又是由那些對GUI編程技術水平毫不知情的人設計的,並且兩次犯同樣的錯誤真的很糟糕!如果Java和Swing的設計人員從20世紀90年代早期開始就只是研究Delphi或NeXt的Interface Builder能夠做什麼以及他們是如何做到的,那麼語言和Swing都會更容易使用! – 2011-04-29 15:30:32

7

我現在正在爲JFormattetTextField而努力。我正嘗試使用NumberFormat.getPercentInstance()來設置我的百分比值。

最糟糕的是,.getValue()不返回相同的值,用戶看到的。例如,如果我在格式化的文本字段中鍵入25,5%,則它會將其舍入到26%,但.getValue()返回0.255。那就是邪惡。

+1

相關問題:http://stackoverflow.com/questions/2206371/how-to-get-the-same-value-as-the-user-is-seeing-from-a-jformattedtextfield – Jonas 2010-03-18 23:15:07