2017-03-06 123 views
3

所以我有代碼,當你按下鼠標它會在文本框中生成一些隨機代碼,然後當輸入被擊中時,它是假設清除所述文本框並替換是一個新的隨機字符串,但它只是選擇相同的隨機字符串。例如。我點擊鼠標並生成「hps」,我點擊enter並再次生成「hps」。有沒有辦法從我的發電機獲取新的字符串?生成一個新的字符串

 public void mouseClicked(MouseEvent arg0) { 
      RandSt string = new RandSt(); 
      textField_tf.setText(string.randStr()); 
      } 
+2

顯示你的RandSt()方法。 –

+0

RandSt.randStr()裏面的代碼是什麼? –

+0

我已將它添加:) – TheAlm565

回答

0

chosen在生成String後未被重置。一個非常簡單的解決辦法只是在你的方法開始加入這一行:

chosen = ""; 

我不過提醒,使用完全不同的方法,例如一個解釋here

import java.security.SecureRandom; 
import java.math.BigInteger; 

public final class SessionIdentifierGenerator { 
    private SecureRandom random = new SecureRandom(); 

    public String nextSessionId() { 
     return new BigInteger(130, random).toString(32); 
    } 
} 
+0

你注意到他在使用Java,對吧? - 你的建議不會編譯;) – SWoeste

+0

@SWoeste哈哈哈抱歉沒有注意到!我會馬上解決它... – Gooz

+0

它確實工作:DD – TheAlm565

0

您每次都得到相同的String,因爲chosen變量在生成隨機String後未被重置。

對於你的randStr方法每次都要返回不同的String,每次需要重置chosen變量randStr方法被調用。

如此聲明chosen變量在您的randStr方法中,以便每次調用randStr方法時都會重置。