Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击按钮时如何停止不断覆盖变量?_Java_Variables_Input_Event Handling_Listener - Fatal编程技术网

Java 单击按钮时如何停止不断覆盖变量?

Java 单击按钮时如何停止不断覆盖变量?,java,variables,input,event-handling,listener,Java,Variables,Input,Event Handling,Listener,我正在尝试制作一个简单的计算器,这样当按下+按钮时,它会将两个变量相加,但每当调用按钮的侦听器时,它就会重置我先前想要存储的变量。我怎样才能避开这件事 public void actionPerformed(ActionEvent e) { int accumulator1 = 1; int userinput; if(e.getSource()==input) { userinput = Integer.parseInt(input

我正在尝试制作一个简单的计算器,这样当按下+按钮时,它会将两个变量相加,但每当调用按钮的侦听器时,它就会重置我先前想要存储的变量。我怎样才能避开这件事

public void actionPerformed(ActionEvent e)
{  
    int accumulator1 = 1;

    int userinput;


    if(e.getSource()==input)
    {  
        userinput = Integer.parseInt(input.getText());
        System.out.println(userinput);
    }
    if(e.getSource()==add)
    {
        accumulator1 = userinput + accumulator1;
        System.out.println(accumulator1);
        System.out.println(userinput);
        accumulator.setText(String.valueOf(accumulator1));
    }   
}

似乎您只需要将累加器1从函数中取出,并为其指定一个全局范围。因此,当您第一次声明它时,将其设置为1,
public void actionPerformed
只添加到它,而不声明/重新初始化它。(除非我完全误解了正在发生的事情…!)

您可能想指出您正在使用哪种编程语言…嗯,有点不对劲。问题实际上在于用户输入。我需要全局初始化,但当我尝试初始化时,public void actionPerformed会拒绝它的任何实例!嗨,是的,刚刚试过,必须在全球范围内初始化,现在可以享受了,谢谢!