2016-12-29 24 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

相關問題