public void actionPerformed(ActionEvent arg0) {
String employeeInput;
String assetInput;
String userInput = txtUserInput.getText();
userInput = userInput.toLowerCase();
if (userInput.startsWith("emp")){
//String employeeInput = null;
employeeInput = userInput.replaceAll("\\s","");
txtUserInput.setText("");
JOptionPane.showMessageDialog(frame, "The Scan was " );
}else if (userInput.startsWith("u")){
assetInput = userInput;
assetInput.replaceAll("\\s","");
txtUserInput.setText("");
System.out.println("Employee ID is " + **employeeInput**); //asks for employeeInput to be declared.
JOptionPane.showMessageDialog(frame, "The Scan was " + assetInput);
我希望填充并保存employeeInput,直到它被另一个employeeInput替换。我遇到的问题是在获取项目输入时,现在缺少employeeInput。这样做的方法是什么?
谢谢你的帮助
答案 0 :(得分:1)
编译器不知道第一个条件已经满足。也不是。但是,你可以改变
String employeeInput; // <-- may not have been initialized
为默认值(可能甚至显式为null
),此处为空String
""
。
String employeeInput = "";
答案 1 :(得分:1)
employeeInput
是方法变量,因此每次退出方法时都会丢失对它的引用。
要尝试的显而易见的事情是将employeeInput
转换为成员变量。只需在课堂顶部声明它。
最好还是将该值保存到数据库中。
答案 2 :(得分:0)
您的employeeInput
变量看起来不像'缺失',或者在设置任何其他变量后可能会被删除。因此,最有可能的是,在定义变量时,您不会初始化变量。
尝试初始化它们,如
String employeeInput = ""; // or = null
String assetInput = ""; // or = null
String userInput = txtUserInput.getText().toLowerCase();
你的问题应该解决了。编译器也可能会对此发出警告。
您可能还想尝试删除此txtUserInput.setText("");
行以测试问题。
编辑:
如果您在方法执行完毕后尝试访问此变量,那么它将被擦除,而不是将其放入您的方法中,在您的类中声明它,如public class Name{
public /*static*/ String employeeInput = ""; //or null
}