這裏是Java Starter,因此我的密碼生成程序 因此,我嘗試創建一個選項來生成多個密碼,並在它們之間留有空格。java;在將文本設置爲字符串時繼續獲取java.lang.String
例子: PASSWORD1
密碼2
但是,當我設置的「密碼」文本到文本字段我不斷收到這樣的東西:ADWADjava.lang.StringQE_Q12
我沒找到在我的代碼中的任何錯誤,或者導致java.lang.String彈出的東西,如果你知道什麼是錯的,請回復這個問題或者發送一個答案。
我的代碼:
createPass.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
field.setText(null);
field.setText("");
String[] pass = new String[5];
for(int i = 0; i < pass.length ; i++) {
pass[i] = allrandom();
}
for(int i = 0; i < pass.length ; i++) {
field.setText(field.getText() + pass[i]);
}
}});
}
public static String allrandom() {
String cpass = "";
password = "";
String[] pass = new String[15];
Random r = new Random();
for(int i = 0 ; i < pass.length ; i++) {
int ch = 0;
ch = r.nextInt(3);
switch(ch) {
case 0:
if(passsettings.isIfDots()) {
String newchar = "";
newchar = dotpass();
pass[i] = newchar;
break;
}
case 1:
if(passsettings.isIfNum()) {
String newchar2 = "";
newchar2 = Numpass();
pass[i] = newchar2;
break;
}
case 2:
String newchar3 = "";
newchar3 = charchose();
pass[i] = newchar3;
break;
}
}
for(int i = 0 ; i < pass.length ; i++) {
String newpasschar = "";
newpasschar = pass[i];
cpass = pass + newpasschar;
}
cpass = cpass + "\n";
return cpass;
// random() end
}
public static String uppercasepass() {
String[] abc = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};
Random r = new Random();
String passletter = "";
int rN3 = 0;
rN3 = r.nextInt(26);
passletter = abc[rN3];
return passletter;
// uppercase() end
}
public static String lowercasepass() {
Random r = new Random();
String passletter = "";
int rN3 = 0;
rN3 = r.nextInt(26);
String[] abc = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
passletter = abc[rN3];
return passletter;
}
public static String Numpass() {
Random r = new Random();
String passletter = "";
int rN = 0;
rN = r.nextInt(9);
String[] nums = {"1","2","3","4","5","6","7","8","9"};
passletter = nums[rN];
return passletter;
}
public static String dotpass() {
Random r = new Random();
String passletter = "";
int rN5 = 0;
rN5 = r.nextInt(6);
String[] dots = {"_","]","$","#","=","@"};
passletter = dots[rN5];
return passletter;
}
public static String charchose() {
Random r = new Random();
String line = "";
int rN = 0;
rN = r.nextInt(2);
String[] random = {"Low","Up"};
String random2 = random[rN];
switch(random2) {
case "Low":
if(passsettings.isIfLowercase()) {
line = lowercasepass();
}else {
charchose();
}
case "Up":
if(passsettings.isIfUpprcase()) {
line = uppercasepass();
}else {
charchose();
}
}
return line;
}
感謝,
- 的Java入門
注:我做了系統的嘗試.out.println和一切正常工作。 –
'field.getText()。toString()' –
@JavaStarter精確這個。如果你測試了一些方法(例如使用sysout),你應該看看錯誤來自哪裏。在你的情況下,這是在'setText'的權利? – Nathan