Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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 int变量是';t在方法执行后更改_Java_Swing - Fatal编程技术网

Java int变量是';t在方法执行后更改

Java int变量是';t在方法执行后更改,java,swing,Java,Swing,我现在正在做一个项目,所以你可能会看到一些没有被使用的代码,不管怎样,我试图从clas变量中接收一个1、2或3的值,我想从CLASSELECT方法返回这个值,但每次运行它时,我都会不断接收到clas仍然是0 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Test4 extends JFra

我现在正在做一个项目,所以你可能会看到一些没有被使用的代码,不管怎样,我试图从clas变量中接收一个1、2或3的值,我想从CLASSELECT方法返回这个值,但每次运行它时,我都会不断接收到clas仍然是0

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test4 extends JFrame implements ActionListener{
    public static void main(String[] args) {
        //Deklaration
        int clas = 0;   //  | 1 = Warrior | 2 = Tank | 3 = Archer |
        ClassSelect(clas);
        System.out.println(clas);
    }

    private static int ClassSelect(int e) {
        while(e == 0){
        String classs = JOptionPane.showInputDialog(null, "What class would you like to be? Warrior, Tank or Archer?");
        System.out.println(classs);

        if(classs.equals( "Warrior" ) || classs.equals( "warrior" )){
            e = e + 1;
        }
        else if(classs.equals( "Tank" ) || classs.equals( "tank" )){
            e = e + 2;
        }
        else if(classs.equals( "Archer" ) || classs.equals( "archer" )){
            e = e + 3;
            System.out.println(e);
        }
        else{
            JOptionPane.showMessageDialog(null, "There is no class called " + classs);
            e = 0;
        }
        }
        return e;
    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
    }
}

Java总是按值传递

相反:

ClassSelect(clas);
应该是:

clas=ClassSelect(clas);

ClassSelect(clas)应该是
clas=ClassSelect(clas)
扩展JFrame
?真的,为什么?顺便说一句:
class.equalsIgnoreCase(“战士”)
(classs.equals(“战士”)| | classs.equals(“战士”)
容易。在我看来,战士应该是坦克。