2016-12-29 51 views
-3

我对Java非常陌生&只是进行了登录,但我想用星号隐藏密码。但是如果我使用这个片段,它会使用星星。如何在更换后“编码”它?替换字符串并再次对其进行编码

编辑:输入来自GuiTextBox,它是Minecraft的GuiScreen的一种方法。

String input = passwd.getText(); 
char[] ca = new char[input.length()]; 
Arrays.fill(ca, '*'); 
String output = new String(ca); 

passwd.setText(output); 
+4

'passwd'是一个JTextField?请参阅[JPasswordField](http://docs.oracle.com/javase/7/docs/api/javax/swing/JPasswordField.html)。如果你不把输入保存在某个地方,它将会丢失。 – AxelH

+0

...或一个JPasswordField?请提供更多的上下文/背景和相关代码,以便我们能够正视或反思。 –

+0

passwd是一个GuiTextBox,它是Minecraft的GuiScreen的一种方法。 – zByte

回答

0

您正在尝试重新创建已存在的内容。

Java提供JPasswordField,它将完全按照您的要求进行操作。

这很容易就像JTextField一样,但在按键时隐藏了密码。你有这样的解决方案中获得的价值(不记得的getText()返回值太大)

char[] input = passwordField.getPassword(); 

请参阅本guide以获取更多信息


编辑

由于这是不是一个Swing组件,我不知道它,我会给你一个难看的解决方案;)

你需要在内存中保留input变量。因此,不是在替换值的方法中声明input,而是在方法之外声明它(作为实例变量)

+0

我使用GuiTextBox,它是Minecraft的GuiScreen的一种方法。 – zByte

+0

@zByte我已经编辑了答案,因为您已经稍晚添加了这些信息。 – AxelH

相关问题