2014-02-26 30 views
1

我有一个JTextField来容纳带3个点的IP地址。 255.120.320.123。当用户输入此IP地址时,我想掩盖它,如 我是指这个线程,How to custom formatter JFormattedTextField to display an IP address?当用户输入文本字段时掩码IP地址Java Swing

jFormattedTextField并没有为我工作。任何人都可以给我一个例子jFormattedTextField 3点可见?

或者是否需要使用4 jFomattedTextField/JPasswordField正如此线程中所述?

在此先感谢。

回答

1

看来你需要使用MaskFormatter,例如:

try { 
    MaskFormatter mf = new MaskFormatter("###.###.###.###"); 
    JFormattedTextField f = new JFormattedTextField(mf); 
    add(f); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 

enter image description here

0

我假设你想使用的JFormattedTextField?也许你应该把它与MaskFormatter结合起来。

喜欢的东西: // IPv4的像192.168.1.1

MaskFormatter formatter = new MaskFormatter("###.###.###.###"); 
JFormattedTextField textField = new JFormattedTextField(formatter); 

Here is an Example and guide

+0

而在文本框输入IP地址255.255.123.122,这些值是可见的。我想掩盖它,就像我使用JPasswordField而不是在GUI中显示它为255.255.123.122,想显示为***。***。***。***我指的是这个http:// stackoverflow .com/questions/5339702/is-there-an-alternative-to-jpasswordfield – user1631072

+0

@ user1631072哦,我明白了,那有点不同。为[JPasswordField](http://docs.oracle.com/javase/7/docs/api/javax/swing/JPasswordField.html)交换JFormattedTextField(并使用echo char等)。我相信你仍然可以使用MaskFormatter与其中的一个(也许...) –

+0

嗨Nathan,谢谢你的回复。有没有办法使用JPasswordField?我面临的问题是,目前在文本字段中显示3个空格.3个空格.3个空格.3个空格输入IP地址。当我用JPasswordField使用echochar时,需要空间和。至 * 。所以我越来越喜欢***********而不是*** *** *** ***。***一旦我选择了复选框掩码,它掩盖了空格和点。在用户输入IP地址之前,echochar屏蔽空格并点到*。 – user1631072