Java 变量未从输入对话框中获取字符串
我试图使用方法Java 变量未从输入对话框中获取字符串,java,dialog,null,Java,Dialog,Null,我试图使用方法charEdit获取对话框的输入,该方法应该会更改输入,但是变量在最后仍然等于null public String showInputDialog(String stringy) { String input = JOptionPane.showInputDialog(this,stringy); if(input == null || input.isEmpty()) { input = showInputDialog(stringy);
charEdit
获取对话框的输入,该方法应该会更改输入,但是变量在最后仍然等于null
public String showInputDialog(String stringy)
{
String input = JOptionPane.showInputDialog(this,stringy);
if(input == null || input.isEmpty())
{
input = showInputDialog(stringy);
}
return input;
}
public void charEdit(Checkbox chara,String account,String password){
chara.setLabel(showInputDialog("Character Name?"));
account=(showInputDialog("Account Name?"));
password=(showInputDialog("Account Password?"));
chara.setEnabled(true);
}
public void menuItemSelected(MenuItem menuObj){
if (menuObj==help){
messageBox("Edit character info and then click the login button");
}
else if (menuObj==charOneEdit){
charEdit(characterOne,charAArray[0],charPArray[0]);
}
}
为什么variable characterOne不保留其值?您的问题是字符串是不可变的。因此,调用此方法:
public void charEdit(Checkbox chara,String account,String password){
chara.setLabel(showInputDialog("Character Name?"));
account=(showInputDialog("Account Name?"));
password=(showInputDialog("Account Password?"));
chara.setEnabled(true);
}
不会更改传入方法的参数所引用的字符串
换句话说,称之为:
String acct = "";
String password = ""; // passwords should not be held in Strings by the way
charEdit(something, acct, password);
不会更改帐户或密码
一种解决方案是使用类字段,并更改这些字段。另一种方法是传入一个对象的引用,该对象具有帐户和密码字段,然后更改其字段的状态。顺便说一下,我喜欢“反射是黑魔法巫术”注释xD