2011-02-26 55 views
0

有什麼辦法可以強制用戶通過覆蓋某些字符來輸入他/她的輸入。指定輸入

即:

第一屏:

Amount: ___.__ 

二:

Amount: 1__.__ 

...是這樣的......

最後:

Amount: 1200.50 

但我想確保一旦用戶按下鍵盤,數字就會被打印出來。

在此先感謝。

p.s .: OS是MS Windows 9x/XP/Vista/7。而應用程序是用於控制檯的。

回答

3
MaskFormatter mf1 = new MaskFormatter("#####.##"); 
mf1.setPlaceholderCharacter('_'); 
JFormattedTextField ftf1 = new JFormattedTextField(mf1); 

下面是完整的代碼

import java.awt.Container; 
import java.text.ParseException; 
import javax.swing.BoxLayout; 
import javax.swing.JFormattedTextField; 
import javax.swing.JFrame; 
import javax.swing.text.MaskFormatter; 

public class Test { 

    public static void main(String args[]) throws ParseException { 
     JFrame f = new JFrame(); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     Container content = f.getContentPane(); 
     content.setLayout(new BoxLayout(content, BoxLayout.PAGE_AXIS)); 

     MaskFormatter mf1 = new MaskFormatter("######.###"); 
     mf1.setPlaceholderCharacter('_'); 
     JFormattedTextField ftf1 = new JFormattedTextField(mf1); 
     content.add(ftf1); 

     f.setSize(300, 100); 
     f.setVisible(true); 
    } 

} 
+0

這是一個基於鞦韆的解決方案。它的應用程序沒有任何GUI,你應該在你的文章中提到。 – 2011-02-26 14:45:57

+0

這很可愛,謝謝,但無論如何,有可能爲控制檯嗎?編輯帖子。 – 2011-02-26 14:48:33

2

你不說你在使用什麼操作系統。爲了執行高級輸入終端工作,這可能很重要。

您可以花一些時間在Java中實現這樣的解決方案,通過自己捕獲按鍵,重新生成輸入行等。另一方面,你看看JLine

+0

我打算設計在Windows上。我會檢查JLine,謝謝。 – 2011-02-26 14:26:52