所以我有代码,当你按下鼠标它会在文本框中生成一些随机代码,然后当命中输入时,假设清除所述文本框并替换是一个新的随机字符串,但它只是选择同一随机字符串。例如。我点击鼠标并生成“hps”,然后单击enter并再次生成“hps”。有没有办法从我的生成器中获取新的字符串?
public void mouseClicked(MouseEvent arg0) {
RandSt string = new RandSt();
textField_tf.setText(string.randStr());
}
答案 0 :(得分: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);
}
}
答案 1 :(得分:0)
每次都会得到相同的String
,因为chosen
变量在生成随机String
后未重置。
要使randStr
方法每次都返回不同的String
,您需要在每次调用chosen
方法时重置randStr
变量。
因此,在chosen
方法中声明randStr
变量,以便每次调用randStr
方法时都会重置该变量。