有什麼辦法可以強制用戶通過覆蓋某些字符來輸入他/她的輸入。指定輸入
即:
第一屏:
Amount: ___.__
二:
Amount: 1__.__
...是這樣的......
最後:
Amount: 1200.50
但我想確保一旦用戶按下鍵盤,數字就會被打印出來。
在此先感謝。
p.s .: OS是MS Windows 9x/XP/Vista/7。而應用程序是用於控制檯的。
有什麼辦法可以強制用戶通過覆蓋某些字符來輸入他/她的輸入。指定輸入
即:
第一屏:
Amount: ___.__
二:
Amount: 1__.__
...是這樣的......
最後:
Amount: 1200.50
但我想確保一旦用戶按下鍵盤,數字就會被打印出來。
在此先感謝。
p.s .: OS是MS Windows 9x/XP/Vista/7。而應用程序是用於控制檯的。
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);
}
}
你不說你在使用什麼操作系統。爲了執行高級輸入終端工作,這可能很重要。
您可以花一些時間在Java中實現這樣的解決方案,通過自己捕獲按鍵,重新生成輸入行等。另一方面,你看看JLine?
我打算設計在Windows上。我會檢查JLine,謝謝。 – 2011-02-26 14:26:52
這是一個基於鞦韆的解決方案。它的應用程序沒有任何GUI,你應該在你的文章中提到。 – 2011-02-26 14:45:57
這很可愛,謝謝,但無論如何,有可能爲控制檯嗎?編輯帖子。 – 2011-02-26 14:48:33